php 长链接变为短链接,长链接转短链接原理
長鏈接轉短鏈接代碼:
function short_url($input = '', $salt = '') {
$base62 = 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','6', '7', '8', '9', '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' );
$hex = md5($input . $salt);
$hex_length = strlen($hex);
$sub_hex_length = $hex_length / 8;
$output = array();
for ($i = 0; $i < $sub_hex_length; $i++) {
$sub_hex = substr($hex, $i * 8, 8);
$int = 0x3FFFFFFF & (1 * ('0x' . $sub_hex));
$out = '';
for ($j = 0; $j < 5; $j++) {
$val = 0x0000003F & $int;
$val = $val % 62;
$out .= $base62[$val];
$int = $int >> 6;
}
$output[] = $out;
}
$in = 0x3 & (1 * ('0x'.substr($hex, 0, 1)));
return $output[$in];
}
為什么在第二個 for 循環中會使用位運算?并且是 0x0000003F。
總結
以上是生活随笔為你收集整理的php 长链接变为短链接,长链接转短链接原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: onblur onchange
- 下一篇: 第七周求圆柱体表面积