ホームページ  >  記事  >  バックエンド開発  >  PHP での短縮 URL 生成の原則と例

PHP での短縮 URL 生成の原則と例

WBOY
WBOYオリジナル
2016-07-25 09:12:47855ブラウズ

例 1、php は短縮 URL を生成します。

  1. $chars=array("a","b","c","d","e","f","g","h",
  2. " i","j","k","l","m","n","o","p",
  3. "q","r","s","t","u ","v","w","x",
  4. "y","z","0","1","2","3","4","5",
  5. "6 "、"7"、"8"、"9"、"A"、"B"、"C"、"D"、
  6. "E"、"F"、"G"、"H"、"I" 、"J"、"K"、"L"、
  7. "M"、"N"、"O"、"P"、"Q"、"R"、"S"、"T"、
  8. "U" ,"V","W","X","Y","Z");
  9. $salt="www.joneto.com";
  10. $hash=md5("http://bbs.it-home .org".$salt);
  11. $rs=array();
  12. for($i=0;$i<4;$i++){
  13. $temp=substr($hash, $i*8,8);
  14. $temp=base_convert($temp, 16, 10) &base_convert("3fffffff", 16, 10);
  15. $str="";
  16. for($j=0;$j<6;$j++){
  17. $subtemp=$temp & intval(base_convert("3d", 16, 10));
  18. $str.=$chars[$subtemp];
  19. $temp=$temp>>5;
  20. }
  21. unset($temp );
  22. $rs[]=$str;
  23. }
  24. print_r($rs);
  25. ?>
コードをコピー

php 短縮 URL を生成するための原理とコード

元の URL で crc32 検証を実行して検証コードを取得し、sprintf を使用して検証コードを符号なしの数値に変換します。

php は短縮 URL を生成します 原則:

1. crc32 で元の URL を検証し、検証コードを取得します。

2. sprintf('%u') を使用して、チェック コードを符号なしの数値に変換します。

3. 符号なし数値 (大文字と小文字 + 数値が 62 ビットに等しい) に対して剰余 62 演算を実行し、剰余を 62 文字にマップし、マップされた文字を保存します。 (たとえば、余りが 10 の場合、マッピングされた文字は A、0 ~ 9 は 0 ~ 9 に対応し、10 ~ 35 は A ~ Z に対応し、35 ~ 62 は a ~ z に対応します)

4. 値が 0 になるまでループします。

5. マッピングされたすべての文字を結合して、短縮 URL の後のコードを取得します。

  1. /**短縮 URL を生成

  2. * @param String $url 元の URL
  3. * @return String
  4. */
  5. function dwz($url){

  6. $code = sprintf('%u ', crc32($url));

  7. $surl = '';

  8. while($code){

  9. $mod = $code % 62;
  10. if($mod>9 && $mod$mod = chr($mod + 55)
  11. }elseif($mod>35){
  12. $mod = chr($mod + 61); }
  13. $surl .= $mod;
  14. $code = Floor($code/62);
  15. }
  16. return $surl>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。