Home >php教程 >php手册 >PHP网址缩短代码(生成短网址)

PHP网址缩短代码(生成短网址)

WBOY
WBOYOriginal
2016-06-13 09:51:201082browse

短网址现在用得比较多很多跳转网站都会生成,像现原微博也有这个功能,下面我来给大家推荐一款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

    $subHex = substr ($hex, $i * 8, 8);

    $int = 0x3FFFFFFF & (1 * ('0x'.$subHex));

    $out = '';


    for ($j = 0; $j

      $val = 0x0000001F & $int;

      $out .= $base32[$val];

      $int = $int >> 5;

    }


    $output[] = $out;

  }


  return $output;

}


Sample code to test/use the above function:

$input = 'http://www.bKjia.c0m /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://www.bKjia.c0m /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://www.bKjia.c0m /1

Output : h0xg4r

bdr3tw

osk2d3

4azfqa


Input : http://www.bKjia.c0m /2

Output : tm5kxb

ceoj2s

yw3dvl

nrmrxl

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn