Rumah > pangkalan data > tutorial mysql > Cara menggunakan PHP dan MySQl untuk menjana dan membaca URL pendek

Cara menggunakan PHP dan MySQl untuk menjana dan membaca URL pendek

WBOY
Lepaskan: 2023-05-27 10:52:38
ke hadapan
1180 orang telah melayarinya

PHP+MySQl实现短网址的生成和读取

常规的方案我们将生成好的短网址和原网址对应到一张数据表中,然后供读取使用。我们先来看如何生成唯一的短网址。

//生成短网址 
function code62($x){ 
  $show=''; 
  while($x>0){ 
    $s=$x % 62; 
    if ($s>35){ 
      $s=chr($s+61); 
    }elseif($s>9&&$s<=35){ 
      $s=chr($s+55); 
    } 
    $show.=$s; 
    $x=floor($x/62); 
  } 
  return $show; 
} 
function shorturl($url){ 
  $url=crc32($url); 
  $result=sprintf("%u",$url); 
  return code62($result); 
} 
echo shorturl(&#39;https://www.jb51.net/&#39;); 
//1EeIv2
Salin selepas log masuk

使用以上PHP代码可以生成唯一的6位的短网址,然后我们将生成的短网址与原网址一起写入到MySQL表中,插入数据库的代码这里我就不写了,这是PHP基础。
接着,我们有一个link.php用来接收读取url并实现真实跳转。

include_once(&#39;connect.php&#39;); //连接数据库 
$url = $_GET[&#39;url&#39;]; 
if(isset($url) && !empty($url)){ 
  $sql = "select url from shorturl where codeid=&#39;$url&#39;"; 
  $query = mysql_query($sql); 
  if($row=mysql_fetch_array($query)){ 
    $real_url = $row[&#39;url&#39;]; 
    header(&#39;Location: &#39; . $real_url); 
  }else{ 
    header(&#39;HTTP/1.0 404 Not Found&#39;); 
    echo &#39;Unknown link.&#39;; 
  } 
}else{ 
  header(&#39;HTTP/1.0 404 Not Found&#39;); 
  echo &#39;Unknown link.&#39;; 
}
Salin selepas log masuk

代码中,如果得到短网址对应的真实url,会使用header跳转到真实的页面上去,否则返回404代码。这样我们可以使用如: http://yourdomain/link.php?url=xxx来实现短网址访问。

继续,我们使用URL rewrite即重写功能来实现诸如可以通过地址:http://yourdomain/xxx 来访问。

以下是rewrite规则:

#Apache规则: 
RewriteRule ^/(.*)$ /link.php?url=$1 [L] 
 
#如果使用nginx,规则这样写: 
rewrite ^/(.*)$ /link.php?url=$1 last;
Salin selepas log masuk

Atas ialah kandungan terperinci Cara menggunakan PHP dan MySQl untuk menjana dan membaca URL pendek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan