ساخت کوتاه کننده لینک با php

به نام خدامیخوایم یک اسکریپت php بنویسیم که یک url بزرگ و طولانی را تبدیل به یک لینک کوتاه و مختصر کند .برای پرسیدن سوال های php خود و حل مشکلاتتان به گروه انجمن php ایران بپیوندید .https://t.me/IR_PHP_Developers_Communityکانال انجمن :https://t.me/IR_PHP_Dev_Community_channelبرای شروع کار یک کلاس به اسم ShortCode می سازیم و دوتا تابع داخلش قرار می دهیم .class ShortCode { function Create() { $step1 = &quotAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&quot $step2 = &quotAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&quot $step3 = &quotAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&quot $step4 = &quotAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz&quot $rand1 = substr(str_shuffle($step1),0,2); $rand2 = substr(str_shuffle($step2),0,1); $rand3 = substr(str_shuffle($step3),0,1); $rand4 = substr(str_shuffle($step4),0,2); $output = $rand1.$rand2.$rand3.$rand4; return $output; } function Insert($url, $shortcode) { include &quotdb_connect.php&quot $sql = &quotINSERT INTO links(url,shortcode)VALUE(:url,:shortcode)&quot $query = $DB->prepare($sql); $query->bindParam(':url', $url, PDO::PARAM_STR); $query->bindParam(':shortcode', $shortcode, PDO::PARAM_STR); $query->execute(); }}تابع اول کارش اینه که بیاد به صورت رندوم یک string شش حرفی بسازه تا ازش به عنوان لینک کوتاه استفاده کنیم .تابع دوم دوتا آرگومان دریافت می کنه آرگومان اول همون (url) یا لینک طولانی ماست و آرگومان دوم همون مقدار خروجی تابع اول یعنی یک string شش حرفی است .حالا باید یک دیتابیس بسازیم به اسم shortcode و بعد یک جدول برای لینک ها توی دیتابیس بسازیم به اسم links و سه تا فیلد داخلش قرار بدیم به اسم های (id) و (url) و (shortcode) .link tableبعد از اون کدهای اتصال به دیتابیس را به صورت زیر می نویسیم .Data Base Connect<?php define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', 'mysql'); define('DB_NAME', 'shortcode'); try{ $DB = new PDO('mysql:host=' . DB_HOST .';dbname=' . DB_NAME, DB_USER, DB_PASS); $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $error){ echo $error->getMessage(); }حالا نوبت میرسه به نوشتن کدهای صفحه index :یک فرم می سازیم که بیاد لینک طولانی رو از کاربر بگیره <div class=&quotsite-section bg-light&quot id=&quotcontact-section&quot> <div class=&quotcontainer&quot> <div class=&quotrow justify-content-center&quot> <div class=&quotcol-md-7&quot> <div class=&quotpt-5&quot> <div class=&quotcomment-form-wrap pt-5&quot> <h3 style=&quottext-align: center;&quot class=&quotmb-5&quot>کوتاه کننده لینک </h3> <form method=&quotPOST&quot class=&quotp-5 bg-light&quot> <div class=&quotform-group&quot> انجمن php ایران <br> <br> <p style=&quottext-align: left;&quot>tel : @IR_PHP_Dev_Community_channel</p> </div> <div class=&quotform-group&quot> <label for=&quotname&quot>لطفا لینک خود را وارد کنید .</label> <input required type=&quottext&quot dir=&quotltr&quot name=&quoturl&quot class=&quotform-control&quot id=&quotname&quot> </div> <div class=&quotform-group&quot> <input type=&quotsubmit&quot name=&quotok&quot value=&quotدریافت نتیجه&quot class=&quotbtn btn-primary&quot> </div> </form> </div> </div> </div> </div> </div> </div>و حالا کدهای php برای ارسال درخواست <?php include(&quotcontroller.php&quot); $ShortCode = new ShortCode; if (isset($_POST['ok'])) { $url = $_POST['url']; $NewShortCode = $ShortCode->Create(); $ShortCode->Insert($url, $NewShortCode); } ?>و بعد از اون نوبت به نمایش لینک کوتاه جدید میرسه localhost/short url/header.php?v=<?php echo $NewShortCode ?>حالا برای هدایت صفحه باید یک فایل به اسم header.php بسازیم و کد های زیر را داخلش قرار بدیم <?php include &quotdb_connect.php&quot $get = $_GET['v']; $sql = &quotSELECT * FROM links WHERE shortcode = '$get'&quot $query = $DB->prepare($sql); $query->execute(); $links = $query->fetch(); $link = $links['url']; header('Location:'.$link);پیروز و موفق باشید .مهدی مومنی برای پرسیدن سوال های php خود و حل مشکلاتتان به گروه انجمن php ایران بپیوندید .https://t.me/IR_PHP_Developers_Communityکانال انجمن :https://t.me/IR_PHP_Dev_Community_channel