1. 程式人生 > >url短地址

url短地址

PQ stat 加密 AR class hash ++ clas cde

現在好多URL連接都使用的短地址不知道什麽意思,網上找了篇例子讀了一下代碼做參考

<?php
class Short_Url {
#字符表
public static $charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

public static function short($url) {
$key = "alexis";
$urlhash = md5($key . $url);
$len = strlen($urlhash);

#將加密後的串分成4段,每段4字節,對每段進行計算,一共可以生成四組短連接
for ($i = 0; $i < 4; $i++) {
$urlhash_piece = substr($urlhash, $i * $len / 4, $len / 4);
#將分段的位與0x3fffffff做位與,0x3fffffff表示二進制數的30個1,即30位以後的加密串都歸零
$hex = hexdec($urlhash_piece) & 0x3fffffff; #此處需要用到hexdec()將16進制字符串轉為10進制數值型,否則運算會不正常

$short_url = "http://t.cn/";
#生成6位短連接
for ($j = 0; $j < 6; $j++) {
#將得到的值與0x0000003d,3d為61,即charset的坐標最大值
$short_url .= self::$charset[$hex & 0x0000003d];
#循環完以後將hex右移5位
$hex = $hex >> 5;
}

$short_url_list[] = $short_url;
}

return $short_url_list;
}
}

$url = "http://www.cnblogs.com/zemliu/";
$short = Short_Url::short($url);
print_r($short);

url短地址