range 函数,array_merge 函数的应用(php 62进制转换算法,适用于短链接系统)(转载)

<?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
posted @ 2012-05-02 22:56  寒剑sky  阅读(307)  评论(0编辑  收藏  举报