php短网址和数字之间相互转换的方法

yipeiwu_com6年前PHP代码库

本文实例讲述了php短网址和数字之间相互转换的方法。分享给大家供大家参考。具体实现方法如下:

<?php
/**
 * 将数字转为短网址代码
 *
 * @param int $number 数字
 * @return string 短网址代码
 */
function generate_code($number) {
  $out  = "";
  $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
  while ($number > 53) {
    $key  = $number % 54;
    $number = floor($number / 54) - 1;
    $out  = $codes{$key}.$out;
  }
  return $codes{$number}.$out;
}
/**
 * 将短网址代码转为数字
 *
 * @param string $code 短网址代码
 * @return int 数字
 */
function get_num($code){
  $codes = "abcdefghjkmnpqrstuvwxyz23456789ABCDEFGHJKMNPQRSTUVWXYZ";
  $num = 0;
  $i = strlen($code);
 for($j=0;$j<strlen($code);$j++){
    $i--;
    $char = $code{$j};
    $pos = strpos($codes,$char);
    $num += (pow(54, $i) * ($pos + 1));
  }
  $num--;
  return $num;
}

希望本文所述对大家的php程序设计有所帮助。

相关文章

PHP简单实现遍历目录下特定文件的方法小结

本文实例讲述了PHP简单实现遍历目录下特定文件的方法。分享给大家供大家参考,具体如下: 1. 使用glob方法 foreach (glob("modules/*.php") as $...

解析php扩展php_curl.dll不加载的解决方法

方法一(已通过测试)已经内置有php_curl.dll,在ext目录下,此DLL用于支持SSL和zlib.在php.ini中找到有extension=php_curl.dll, 去掉前面...

php生成SessionID和图片校验码的思路和实现代码

/****** 产生Session ID ******/ 基本的思路: 是把当前微秒的时间获取, 然后产生以个随机数字, 把随机数字和当前时间相加后加密一下, 最后再截取需要的长度...

php列出一个目录下的所有文件的代码

复制代码 代码如下: <?php function dir_path($path) { $path = str_replace('\\', '/', $path); if (sub...

PHP十六进制颜色随机生成器功能示例

本文实例讲述了PHP十六进制颜色随机生成器功能。分享给大家供大家参考,具体如下: <?php function randomColor() { $str = '#'...