Principle:
1. The original URL do crc32 check, get the check code.
2. Use sprintf ('%u ') officers transferred Guevara code to convert to unsigned digits.
3.62 Operations for unsigned digits (uppercase and lowercase + digits equal to 62 digits), the remainder is mapped to 62 characters, and the mapped characters are saved. (for example, the remainder is 10, then the mapped character is a,0-9 corresponds to the 0-9,10-35 corresponding a-z,36-61 a-Z)
4. Cycle operation until the value is 0.
5. All mapped characters are spliced, which is the code after the short URL.
The code is as follows:
/** generates a short URL
* @param string $url the original URL
* @return string
/function DWZ ($url) {
$code = floatval ( sprintf ('%u ', CRC32 ($url));
$surl = ';
while ($code) {
$mod = Fmod ($code);
if ($mod >9 && $mod <=35) {
$mod = chr ($mod +);
} ElseIf ($mod >35) {
$mod = chr ($mod +);
}
$surl. = $mod;
$code = Floor ($code/62);
return $surl;
}
Demo
<?php
Echo dwz (' Http://blog.csdn.net/fdipzone ');//rs5u24
?>
See more highlights of this column: http://www.bianceng.cnhttp://www.bianceng.cn/webkf/PHP/