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

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

WBOY
WBOYoriginal
2016-06-13 09:51:201082parcourir

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn