アイデア:
1) 長い URL md5 から 32 ビットの署名文字列を生成し、4 つのセグメントに分割します。各セグメントは 8 バイトです。
2) これら 4 つのループ処理セグメントについては、8 バイトを 16 進文字列として扱い、0x3fffffff (30 ビット 1) で演算します。つまり、30 ビットを超える処理を無視します。
4) 合計 md5 文字列は 4 つの 6 桁の文字列を取得でき、それらのいずれかをこの長い URL の短い URL アドレスとして使用できます。
以下は
PHP
function shorturl($url='', $prefix='', $suffix='') {
$base32 = 配列 (
'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');
$output = array();
for ($i = 0; $i
$subHex = substr ($hex, $i * 8, 8);
$int = 0x3FFFFFFF & (1 * ('0x'.$subHex));
$out = '';
for ($j = 0; $j
$val = 0x0000001F & $int;
;
var_dump($urls);
http://www.bkjia.com/PHPjc/371805.html
www.bkjia.com