例 1、php は短縮 URL を生成します。
-
- $chars=array("a","b","c","d","e","f","g","h",
- " i","j","k","l","m","n","o","p",
- "q","r","s","t","u ","v","w","x",
- "y","z","0","1","2","3","4","5",
- "6 "、"7"、"8"、"9"、"A"、"B"、"C"、"D"、
- "E"、"F"、"G"、"H"、"I" 、"J"、"K"、"L"、
- "M"、"N"、"O"、"P"、"Q"、"R"、"S"、"T"、
- "U" ,"V","W","X","Y","Z");
- $salt="www.joneto.com";
- $hash=md5("http://bbs.it-home .org".$salt);
- $rs=array();
- for($i=0;$i<4;$i++){
- $temp=substr($hash, $i*8,8);
- $temp=base_convert($temp, 16, 10) &base_convert("3fffffff", 16, 10);
- $str="";
- for($j=0;$j<6;$j++){
- $subtemp=$temp & intval(base_convert("3d", 16, 10));
- $str.=$chars[$subtemp];
- $temp=$temp>>5;
- }
- unset($temp );
- $rs[]=$str;
- }
- print_r($rs);
- ?>
コードをコピー
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 の後のコードを取得します。
-
-
/**短縮 URL を生成 - * @param String $url 元の URL
- * @return String
- */
- function dwz($url){
$code = sprintf('%u ', crc32($url));
$surl = '';
while($code){
- $mod = $code % 62;
- if($mod>9 && $mod$mod = chr($mod + 55)
- }elseif($mod>35){
- $mod = chr($mod + 61); }
- $surl .= $mod;
- $code = Floor($code/62);
- }
- return $surl>
-
-
-
|