Heim  >  Artikel  >  Backend-Entwicklung  >  php生成短网址的思路与实现

php生成短网址的思路与实现

WBOY
WBOYOriginal
2016-07-25 08:54:421118Durchsuche
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^/(.*)$ link.php?url=$1[L]
复制代码

实现了将 http://t.cn/link.php?url=zHEYrvV 转换为了 http://t.cn/zHEYrvV ,缩短了不少,那么如何通过 zHEYrvV 去查找到 http://bbs.it-home.org/sitejs-17300-1.html 这个网址并跳到这个网址上去呢?这里就用到了一个类似加密的算法了,通过算法将所有的长网址缩短成一个对应的5-6位的并且唯一字符串,并将这个对应关系存入到数据库中去。

结合本例就是根据传入的参数 zHEYrvV 到数据库中去找对应的网址,找到了就 header 跳转过去。

分享一个php短网址的生成代码(这里将长网址生成短至5-6位字符长度并且还需要是唯一的):

  1. function code62($x){
  2. $show='';
  3. while($x>0){
  4. $s=$x % 62;
  5. if ($s>35){
  6. $s=chr($s+61);
  7. }elseif($s>9&&$s $s=chr($s+55);
  8. }
  9. $show.=$s;
  10. $x=floor($x/62);
  11. }
  12. return $show;
  13. }
  14. function shorturl($url){
  15. $url=crc32($url);
  16. $result=sprintf("%u",$url);
  17. return code62($result);
  18. }
复制代码

比如 echo shorturl('http://bbs.it-home.org/'); 将生成的一个唯一对应码。

有关url重写的方法,可以参考文章: php 伪静态 url重写简单示例 php 伪静态(url重写)的写法 php5.3以上版本中快速url重写的方法



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn