آموزش 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]
توجه: این کدها بر روی آپاچی کار می کنند.
الان اگر دوباره بخواهیم به آن مطلب از طریق لینک کوتاه دسترسی داشته باشیم می توانیم از آدرس زیر استفاده کنیم:
کاملا مشخص هست که لینک ما کوتاه تر و البته از لحاظ ساختار نیز بهتر شده است. شما می توانید با اضافه کردن قابلیت هایی همچون اضافه کردن بخش مدیریت و ارتباط با پایگاه داده سیستم را جهت استفاده های شخصی و تجاری خود بهینه کنید.
پیام لینکای کوتاه به نظر من نقش ساقه کرفس رو دارن :دی
عجب تشبیهی :دی
تو ارسال لینک از طریق sms یا گذاشتن لینک رفرال کاربردش بیشتر هست.
چرا از این کد برای ساخت لینک استفاده کردی می شه با “فرایچ” خیلی راحت تر درست کرد
موردی که من بلد بودم این بود و اگر روش راحتر وجود داره خوشحال میشم که توضیح بدید 🙂
سلام
توهاست و در یک فولدر فایل ها رو قرار دادم.همه لینکا رو Unknown link. میده.تنظیمات دیگه ای لازم نداره؟
سلام، اگر موارد گفته شده در مطلب را درست انجام داده باشید نباید مشکلی پیش بیاد. مراحل رو مجدد بررسی کنید اگر باز هم کار نکرد فایل زیر که هم اکنون روی هاست خودم هست و کار میکنه رو برای دانلود میذارم دانلود و تست کن اگر باز هم کار نکرد (که احتمال اش خیلی کم هست) اطلاع بده تا بررسی کنم.
دانلود فایل
ادرس لینک خرابه لطفا درستش کنید
سلام، لینک جدید گذاشته شد.
سلام خیلی خوب بود ممنون
http://uorl.ir
میشه یه راهکارم برای پوشه بندی و ایجاد زیر پوشه با php و Mysql ارائه بدید ؟
اگه فرصت داشتین در وبلاگم پاسخ بدید….خیلی نیاز دارم …
سلام
خیلی دنبال همچین مطلبی میگشتم که بلاخره اینجا پیداش کردم.
من تازه کارم و ۳تا سوال دارم
میخوام آدرس سایتم رو داشته باشم همراه با یک حرف انگلیسی. چطور میشه؟
میشه از حروف فارسی استفاده کرد؟
و اگه ممکنه کلا یک بار دیگه بصورت ساده توضیح بدید.
سلام. خوشحالم که نوشته های این وبلاگ براتون مفید بوده.
سوال اول رو به درستی متوجه نشدم برای همین لطفا یکم واضح تر بگید.
سوال دوم بله می توانید از حروف فارسی هم استفاده کنید.
سلام خسته نباشید
من دارم یه سیستم کوتاه کننده لینک شخصی با پنل مدیریت میسازم اما چند جا مثله انتقال لینک به لینک اصلی و … موندم چیکار کنم ؟!
کسی نظر یا آموزشی داره
!کلاس های طراحی وب پیشرفته راهم ، به صورت حضوری و کلاسهای آنلاین گذروندم!
سلام، تو خود همین پست یک نمونه ساده و اولیه از انتقال لینک کوتاه شده به لینک اصلی موجود هست. اما پیشنهاد من برای شما که می خواهید به صورت حرفه ای یک سیستم بنویسید این هست که چند تا اسکریپت کوتاه کننده لینک رو دانلود کنید و کدهاشون رو بررسی کنید تا با ساختار کدنویسی آشنا بشید. بررسی کدهای یک سیستم دیگر از مواردی هست که حتی افراد حرفه ای هم از آن استفاده می کنند.
کلاس ها و دوره هایی هم که گذرونده اید صرفا به شما اطلاعات منتقل کرده اند نه «تخصص و مهارت». برای همین تا وقتی خودتون دست به کدنویسی نزنید هرگز از اون اطلاعات بهره ای نخواهید برد.
ممنونم بسیار عالی بود
با سپاس بهترین کوتاه کننده لینک فارسی در ایران
ممنون از پست مفید و کاربردیه کوتاه کننده لینک سایت
سلام
من این دیتا رو وارد کردم ولی خطای زیر رو میده :
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) ارسال کنید تا بررسی کنم و بهتر بتونم راهنمایی کنم.