PHP网址缩短代码(生成短网址)
每个网址用6个字符代替,(32^6) 最多可以拥有1,073,741,824个短网址,当然,你还可以记录更详细的信息,如访问记录,创建时间等,如果真不够用了,还可以删掉很久不用的,代码如下:
function shorturl( $input ) { $base32 = array ( 'a' , 'b' , 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , 'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' , 'w' , 'x' , 'y' , 'z' , '0' , '1' , '2' , '3' , '4' , '5' ); $hex = md5( $input ); $hexLen = strlen ( $hex ); $subHexLen = $hexLen / 8; $output = array (); for ( $i = 0; $i < $subHexLen ; $i ++) { $subHex = substr ( $hex , $i * 8, 8); $int = 0x3FFFFFFF & (1 * ( '0x' . $subHex )); $out = '' ; for ( $j = 0; $j < 6; $j ++) { $val = 0x0000001F & $int ; $out .= $base32 [ $val ]; $int = $int >> 5; } $output [] = $out ; } return $output ; } Sample code to test/ use the above function : $input = 'http://HdhCmsTestphpfensi测试数据 /1' ; $output = shorturl( $input ); echo "Input : $inputn" ; echo "Output : {$output[0]}n" ; echo " {$output[1]}n" ; echo " {$output[2]}n" ; echo " {$output[3]}n" ; echo "n" ; $input = 'http://HdhCmsTestphpfensi测试数据 /2' ; $output = shorturl( $input ); echo "Input : $inputn" ; echo "Output : {$output[0]}n" ; echo " {$output[1]}n" ; echo " {$output[2]}n" ; echo " {$output[3]}n" ; echo "n" ; Output: Input : http: //HdhCmsTestphpfensi测试数据 /1 Output : h0xg4r bdr3tw osk2d3 4azfqa Input : http: //HdhCmsTestphpfensi测试数据 /2 Output : tm5kxb ceoj2s yw3dvl nrmrxl查看更多关于PHP网址缩短代码(生成短网址) - php高级应用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did30160