ساخت اسکریپت کوتاه کننده لینک با PHP به صورت Ajax - نسخهی قابل چاپ +- باشگاه کاربران روماک (https://forum.romaak.ir) +-- انجمن: انجمن طراحی سایت و برنامه نویسی (https://forum.romaak.ir/forumdisplay.php?fid=78) +--- انجمن: کد نویسی (https://forum.romaak.ir/forumdisplay.php?fid=79) +---- انجمن: PHP (https://forum.romaak.ir/forumdisplay.php?fid=46) +---- موضوع: ساخت اسکریپت کوتاه کننده لینک با PHP به صورت Ajax (/showthread.php?tid=4978) |
ساخت اسکریپت کوتاه کننده لینک با PHP به صورت Ajax - saberi - ۹۷/۱/۱۵ به احتمال زیاد تا به حال به سایتهایی برخوردید که یک لینک طولانی را گرفته و آن را به یک لینک کوتاه تبدیل می کنند. سایتهایی مثل tinyurl.com , bit.ly و … در این پست می خواهیم آموزش ساخت اسکریپت کوتاه کننده لینک را به وسیله PHP به صورت ای جکس آموزش دهیم.
سورس این اسکریپت را از فایل پیوست انتهای مقاله دانلود کنید. دیتابیس این اسکریپت را می سازیم : *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
بعد از ساخت دیتابیس بالا در فایل config.php کدهای زیر را بنویسید و مقدار دهی کنید : *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
برای ساخت لینکهای کوتاه و ذخیره در دیتابیس کلاسی می نوسیم به نام UrlShortener که در زیر به توضیح این کلاس می پردازیم : این کلاس ۶ متد دارد و از کتابخانه PDO برای اتصال با Mysql استفاده می کند : *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در متد سازنده یک شیء از کلاس pdo ساختیم و رشته اتصال به دیتابیس را به آن پاس دادیم. متد createShortCode : این متد یک رشته بصورت تصادفی ایجاد می کند، اگر رشته در دیتابیس بود یک رشته دیگر می سازد و برمی گرداند. متد validUrl : یک url میگیرد و فرمت url رو چک می کند، در صورت صحیح بودن true بر می گرداند. متد existInDb : این متد یک url می گیرد و چک می کند که آیا در دیتابیس ذخیره شده یا خیر؟ متد insertInDb : این متد هم url مورد نظر را می گیرد . ابتدا چک می کند اگر در دیتابیس وجود داشت لینک کوتاه آن را برمی گرداند، ادر غیر اینصورت لینک را به دیتابیس اضافه می کند و لینک کوتاه را برمی گرداند. متد getUrl : این متد کد کوتاه شده را می گیرد و آدرس مربوط را برمی گرداند. متد addCount : این متد به ازای هر بازدید از آدرس ها یکی به تعداد فیلد visits اضافه می کند. در فایل index.php فقط قسمت کدهای jquery را توضیح می دهیم. *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این قسمت زمانی که روی کلید ارسال فرم کلیک می شود یک درخواست به صورت post به صفحه shortener.php ارسال می شود و جواب این درخواست با فرمت json دریافت می شود. دستور e.preventDefault برای جلوگیری از ارسال فرم هنگام کلیک روی دکمه submit فرم می باشد. فایل shortebner.php *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این فایل هم روال کار بسیار ساده است. ابتدا فایل مربوط به تنظیمات را include کردیم. سپس یک شیء از کلاس UrlShortener ایجاد کردیم و بعد آدرس URL را در دیتابیس ذخیره می کنیم و نتیجه را با فرمت json نمایش می دهیم. تا اینجا یک لینک از کاربر گرفتیم. برای این لینک یک کد کوتاه ساختیم و در دیتابیس ذخیره کردیم. حال برای اینکه کاربر بتواند با کلیک روی لینک به url اصلی برود، یک فایل با نام goto.php می سازیم و کدهای زیر روا داخل آن می نویسیم : *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
در این فایل کد کوتاهی که در متغیر $_GET[‘url’] قرار گرفته رو در دیتابیس پیدا می کنیم و URL مربوط به این کد رو از دیتابیس می خوانیم. در نهایت با دستور header صفحه را به url مورد نظر انتقال می دهیم. در صورتی که کد کوتاه در دیتابیس وجود نداشته باشد، صفحه ۴۰۴ به کاربر نمایش داده می شود. بعد از ایجاد فایل goto.php که در مرحله قبل انجام شد یک فایل .htaccess می سازیم تا به جای آدرس : دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. آدرسهایی با فرمت زیر داشته باشیم : دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید. پس از ساخت فایل htaccess کدهای زیر را داخل آن بنویسید : *محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *
خب اسکریپت ما آماده شد. امیدوارم مورد استفاده شما قرار گرفته باشد. |