Home >Backend Development >PHP Tutorial >PHP URL shortening code (generating short URL)_PHP tutorial

PHP URL shortening code (generating short URL)_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:49:201769browse

Short URLs are now used more frequently and are generated by many jump websites. For example, Xianyuan Weibo also has this function. Now I will recommend a PHP URL shortening code for everyone.

Replace each URL with 6 characters. (32^6) You can have up to 1,073,741,824 short URLs. Of course, you can also record more detailed information, such as access records, creation time, etc. If you really don’t have enough, you can delete the ones you haven’t used for a long time.

The code is as follows
 代码如下 复制代码

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 < $subHexLen; $i++) {

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

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

$out = '';


for ($j = 0; $j < 6; $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

Copy code
function shorturl($input) {

$base32 = array (

'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 < $subHexLen; $i++) {<🎜> <🎜> $subHex = substr ($hex, $i * 8, 8);<🎜> <🎜> $int = 0x3FFFFFFF & (1 * ('0x'.$subHex));<🎜> <🎜> $out = '';<🎜> <🎜>
for ($j = 0; $j < 6; $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 http://www.bkjia.com/PHPjc/632729.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632729.htmlTechArticleShort URLs are now used more often and many jump websites will be generated. The original Weibo also has this function, as follows Let me recommend a PHP URL shortening code to replace each URL with 6 characters...
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