php生成短域名函数

短网址流行的已经有一段时间了,以前做新浪微博应用的时候就有接触,但没有搞清楚,最近再次接触到这个东东,仔细研究了下,发现短网址其实也挺容易的。下面就将使用php生成短网址的实现方法做一下记录。

php生成短域名函数

  1. public function createRandCode($string) {
  2. $code = '';
  3. $hex_code = '1qaz2wsx3edc4rfv5t-gb6yhn7ujm8ik9ol0p_';
  4. $now = microtime(true) * 10000;
  5. $strlen = strlen($hex_code);
  6. $hash_code = hash('sha256', $string);
  7. // 这里会为编码定义一个随机的长度,长度取决于step
  8. $step = rand(8, 16);
  9. $count = ceil(strlen($hash_code) / $step);
  10. for($i = 0; $i < $count; $i++) {
  11. $start = $i * $step;
  12. $hex_num = substr($hash_code, $start, $step);
  13. $num = 0x3fffffff & (1 * '0x' . $hex_num);
  14. $n = $num % $strlen;
  15. $code .= $hex_code[$n];
  16. }
  17. return $code;
  18. }