<?php
/**
* @method 转化数字为url
* @author taylor
*/
//拼接0-9 a-z A-Z 此处已经改进,用range('a','z') 取代
$basicNum
= range(0, 9);
$basiclittle
= range(
'a'
,
'z'
);
$basicLittle
= range(
'A'
,
'Z'
);
$basic
=
array_merge
(
$basicNum
,
$basiclittle
,
$basicLittle
);
/* 生成62个字符*/
*****************转换url***********///
$num
=62*62*62*62*62-1234;
echo
'传入数字为'
,
$num
,
'<br />'
;
$flag
=1;
$i
=0;
while
(
$flag
){
$num
=
intval
(
$num
);
$int
=
floor
(
$num
/62);
//取得整数部分
$mod
[
$i
]=
$num
%62;
//取得余数部分
if
(
$int
==0){
//当被除数为0时候结束
$flag
=0;
}
// echo '整数部分为: ',$int,' 余数为:',$mod[$i];//输出算法
// echo '<hr />';
$num
=
$int
;
$i
++;
}
$numarray
=
array_reverse
(
$mod
);
//反转数组,因为余数是反过来的
foreach
(
$numarray
as
$k
=>
$v
){
$shortUrl
[
$k
]=
$basic
[
$v
];
//62位数字对应basic62个数据,转换数字为字母
}
$shortUrl
=implode(
''
,
$shortUrl
);
echo
'最终链接为:'
,
$shortUrl
;
?>
为了尊重作者,原文地址:
http://www.pztai.com/?p=7