آموزش PHP : ساخت کوتاه کننده لینک

خیلی وقت بود که تو سایت مطلب آموزشی نذاشته بودم برای همین تو فکر گذاشتن یک آموزش ساده و در عین حال کاربردی بودم که کوتاه کننده لینک به ذهنم رسید. کدهای این سیستم بسیار کم بوده و برای همین برای پیاده سازی آن دچار مشکل نخواهید شد. تا آخر با من همراه باشید :دی

ازجایی که سیستم ما فاقد هرگونه سیستم مدیریتی خواهد بود برای همین باید لینک هایی که میخواهیم آنها را کوتاه کنیم در یک فایل وارد کنیم. پس فایلی با نام links.ini ایجاد می کنیم. در این فایل باید لینک هایی که میخواهید کوتاه کنید را به شکل زیر وارد کنید.

s = http://sobhanehonline.com/
p = http://payam.keivany.ir/

pn = http://payam.keivany.ir/1393/%d8%a7%d9%88%d9%84%db%8c%d9%86-%d8%a7%d8%b1%d8%a7%d8%a6%d9%87-%d8%a7%db%8c-%da%a9%d9%87-%d8%af%d8%a7%d8%af%d9%85

برای لینک هایی که میخواهیم کوتاه کنیم باید یک نام انتخاب کنیم. هرچقدر این نام کوتاه باشد در کوتاه شدن لینک مفید خواهد بود. برای مثال من لینک وبلاگ شخصی رو خودم با نام p مشخص کردم.

اکنون وقت آن رسیده است که کدهای خود سیتسم را بنویسیم! برای اینکار ابتدا فایلی با نام index.php ایجاد کنید و کدهای زیر را در ان وارد کنید.

<?php
$links = parse_ini_file('links.ini');
if(isset($_GET['1']) && array_key_exists($_GET['1'], $links))
	header('Location: ' . $links[$_GET['1']]);
else
	echo 'Unknown link.';
?>

ما فرض می کنیم که شما مفاهیم پایه php رو بلد هستید. در این کد فقط ما با استفاده از فانکشن parse_ini_file محتویات links.ini را بدست می آوریم. بعد با استفاده از یک شرط بررسی می کنیم که لینک وارد شده در مرورگر آیا در links.ini وجود دارد یا نه؟

در صورتی که لینک درست باشد سیتسم به صفحه لینک منتقل خواهد شد ، در غیراین صورت پیامی مبنی برعدم وجود لینک نمایش داده خواهد شد.

به نظر میرسه کار تموم شده هست! برای همین یک مورد را تست می کنیم. میخواهیم به لینک یک مطلب از همین وبلاگ شخصی خودم که در بالا با نام pn تعریف شده از طریق لینک کوتاه دسترسی پیدا کنیم. برای همین منظور از لینک زیر باید استفاده کنیم.

http://keivany.ir/ls/index.php?1=pn

خب لینک رو که تست کردیم همه چیز درست بود و سیستم ما به خوبی کار میکند ولی یک مورد همچنان جای کارد دارد! هدف از کوتاه کردن لینک کم کردن از تعداد کاراکترهای url می باشد. در ساختار لینک فوق ما 12 کاراکتر اضافی داریم و بدون استفاده داریم که می توانیم با حذف کردن انها لینک را کوتاه تر کنیم.

برای انجام این کار فایلی با نام .htaccess ایجاد کنید و کدهای زیر را در آن وارد کنید.

RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?1=$1 [L]

توجه: این کدها بر روی آپاچی کار می کنند.

الان اگر دوباره بخواهیم به آن مطلب از طریق لینک کوتاه دسترسی داشته باشیم می توانیم از آدرس زیر استفاده کنیم:

http://keivany.ir/ls/pn

کاملا مشخص هست که لینک ما کوتاه تر و البته از لحاظ ساختار نیز بهتر شده است. شما می توانید با اضافه کردن قابلیت هایی همچون اضافه کردن بخش مدیریت و ارتباط با پایگاه داده سیستم را جهت استفاده های شخصی و تجاری خود بهینه کنید.

پیام کیوانی

نوشتن رو دوست دارم، چون باعث افزایش آگاهی خواننده میشه. تمام سعی ام این هست که مطالبی که می نویسم برای افرادی هم که مراجعه می کنند مفید و کاربردی باشه ولی قطعا مواردی خواهند بود که اصلا به درد شما نمی خورن! چون اینجا "وبلاگ شخصی" هست.

۱۸ دیدگاه‌

  1. میلاد گراف گفت:

    پیام لینکای کوتاه به نظر من نقش ساقه کرفس رو دارن :دی

  2. mahmoodi گفت:

    چرا از این کد برای ساخت لینک استفاده کردی می شه با “فرایچ” خیلی راحت تر درست کرد

  3. امیر نعمت گفت:

    سلام
    توهاست و در یک فولدر فایل ها رو قرار دادم.همه لینکا رو Unknown link. میده.تنظیمات دیگه ای لازم نداره؟

  4. علی گفت:

    سلام خیلی خوب بود ممنون
    http://uorl.ir

  5. فرهاد گفت:

    میشه یه راهکارم برای پوشه بندی و ایجاد زیر پوشه با php و Mysql ارائه بدید ؟

    اگه فرصت داشتین در وبلاگم پاسخ بدید….خیلی نیاز دارم …

  6. محسن گفت:

    سلام
    خیلی دنبال همچین مطلبی میگشتم که بلاخره اینجا پیداش کردم.
    من تازه کارم و ۳تا سوال دارم

    میخوام آدرس سایتم رو داشته باشم همراه با یک حرف انگلیسی. چطور میشه؟

    میشه از حروف فارسی استفاده کرد؟

    و اگه ممکنه کلا یک بار دیگه بصورت ساده توضیح بدید.

    • سلام. خوشحالم که نوشته های این وبلاگ براتون مفید بوده.
      سوال اول رو به درستی متوجه نشدم برای همین لطفا یکم واضح تر بگید.
      سوال دوم بله می توانید از حروف فارسی هم استفاده کنید.

  7. محمد گفت:

    سلام خسته نباشید
    من دارم یه سیستم کوتاه کننده لینک شخصی با پنل مدیریت می‌سازم اما چند جا مثله انتقال لینک به لینک اصلی و … موندم چی‌کار کنم ؟!
    کسی نظر یا آموزشی داره
    !کلاس های طراحی وب پیشرفته راهم ، به صورت حضوری و کلا‌س‌های آنلاین گذروندم!

    • سلام، تو خود همین پست یک نمونه ساده و اولیه از انتقال لینک کوتاه شده به لینک اصلی موجود هست. اما پیشنهاد من برای شما که می خواهید به صورت حرفه ای یک سیستم بنویسید این هست که چند تا اسکریپت کوتاه کننده لینک رو دانلود کنید و کدهاشون رو بررسی کنید تا با ساختار کدنویسی آشنا بشید. بررسی کدهای یک سیستم دیگر از مواردی هست که حتی افراد حرفه ای هم از آن استفاده می کنند.
      کلاس ها و دوره هایی هم که گذرونده اید صرفا به شما اطلاعات منتقل کرده اند نه «تخصص و مهارت». برای همین تا وقتی خودتون دست به کدنویسی نزنید هرگز از اون اطلاعات بهره ای نخواهید برد.

  8. ممنونم بسیار عالی بود
    با سپاس بهترین کوتاه کننده لینک فارسی در ایران

  9. ممنون از پست مفید و کاربردیه کوتاه کننده لینک سایت

  10. ehsan گفت:

    سلام
    من این دیتا رو وارد کردم ولی خطای زیر رو میده :
    Warning: syntax error, unexpected ‘=’ in links.ini on line 33 in /home2/radyo/public_html/index.php on line 2

    Warning: array_key_exists() expects parameter 2 to be array, boolean given in /home2/radyo/public_html/index.php on line 3
    Unknown link.
    میشه راهنمایی کنید چطوری رفع کنم ؟

    • سلام، طبق خطایی که ارسال کردید شما نوع داده‌ای که برای لینک ها استفاده کردید درست نیست. در صورت امکان از فایل‌هاتون یک نسخه فشرده (فایل ZIP) ارسال کنید تا بررسی کنم و بهتر بتونم راهنمایی کنم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *