www.adminn.cn
站长正能量分享网!

PHP生成短网址的3种方法代码实例

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

这篇文章主要介绍了PHP生成短网址的3种方法代码实例,分别为纯随机生成法、枚举生成法、62位生成法,需要的朋友可以参考下

短网址服务,可能很多朋友都已经不再陌生,现在大部分微博、手机邮件提醒等地方已经有很多应用模式了,并占据了一定的市场。估计很多朋友现在也正在使用。 看过新浪的短连接服务,发现后面主要有6个字符串组成。

太多算法的东西,也没必要去探讨太多,最主要的还是实现,下面是三种方法的代码:

  1. <?php  
  2.    
  3. //纯随机生成方法 
  4. function random($length$pool = '')  
  5.   {  
  6.     $random = '';  
  7.    
  8.     if (emptyempty($pool)) {  
  9.       $pool  = 'abcdefghkmnpqrstuvwxyz';  
  10.       $pool  .= '23456789';  
  11.     }  
  12.    
  13.     srand ((double)microtime()*1000000);  
  14.    
  15.     for($i = 0; $i < $length$i++)  
  16.     {  
  17.       $random .= substr($pool,(rand()%(strlen ($pool))), 1);  
  18.     }  
  19.    
  20.     return $random;  
  21.   }  
  22.    
  23.  $a=random(6); 
  24. print_r($a);   
  25.    
  26. // 枚举生成方法 
  27. function shorturl($input) {  
  28.  $base32 = array (  
  29.   "0""1""2""3""4""5""6""7""8""9",   
  30. "a""b""c""d""e""f""g""h""i""j",   
  31. "k""l""m""n""o""p""q""r""s""t",   
  32. "u""v""w""x""y""z",   
  33. "A""B""C""D""E""F""G""H""I""J",   
  34. "K""L""M""N""O""P""Q""R""S""T",   
  35.  "U""V""W""X""Y""Z" 
  36.   );  
  37.    
  38.  $hex = md5($input);  
  39.  $hexLen = strlen($hex);  
  40.  $subHexLen = $hexLen / 8;  
  41.  $output = array();  
  42.    
  43.  for ($i = 0; $i < $subHexLen$i++) {  
  44.   $subHex = substr ($hex$i * 8, 8);  
  45.   $int = 0x3FFFFFFF & (1 * ('0x'.$subHex));  
  46.   $out = '';  
  47.    
  48.   for ($j = 0; $j < 6; $j++) {  
  49.    $val = 0x0000001F & $int;  
  50.    $out .= $base32[$val];  
  51.    $int = $int >> 5;  
  52.   }  
  53.    
  54.   $output[] = $out;  
  55.  }  
  56.    
  57.  return $output;  
  58. }  
  59. $a=shorturl("https://www.adminn.cn"); 
  60. print_r($a); 
  61. //62 位生成方法 
  62.    
  63. function base62($x)  
  64.    
  65. {  
  66.    
  67. $show'';  
  68.    
  69.  while($x> 0) {  
  70.    
  71. $s$x% 62;  
  72.    
  73. if($s> 35) {  
  74.    
  75. $schr($s+61);        
  76.    
  77. elseif($s> 9 && $s<=35) {  
  78.    
  79. $schr($s+ 55);  
  80.    
  81. }  
  82.    
  83. $show.= $s;  
  84.    
  85.  $xfloor($x/62);  
  86.    
  87. }  
  88.    
  89. return $show;    
  90.    
  91. }  
  92.    
  93. function urlShort($url)  
  94.    
  95. {  
  96.    
  97. $url= crc32($url);  
  98.    
  99. $result= sprintf("%u"$url);  
  100.    
  101. return base62($result);  
  102.    
  103.  }  
  104.    
  105. echo urlShort("https://www.adminn.cn/");  
  106.    
  107. ?> 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHP生成短网址的3种方法代码实例》
文章链接:https://www.adminn.cn/news/8860.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏