W3CHINA Blog首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:VeryTag
日志总数:15
评论数量:8
留言数量:0
访问次数:84243
建立时间:2005年1月22日




The Google Pagerank Checksum Calculator 
电脑与网络

清风细雨 发表于 2005/2/15 10:22:05

DEMO:http://alex.vort-x.net/google/ Source: PHP: <?php /*     This code is released unto the public domain */ header("Content-Type: text/plain; charset=utf-8"); define('GOOGLE_MAGIC', 0xE6359A60);   //unsigned shift right function zeroFill($a, $b) {     $z = hexdec(80000000);         if ($z & $a)         {             $a = ($a>>1);             $a &= (~$z);             $a |= 0x40000000;             $a = ($a>>($b-1));         }         else         {             $a = ($a>>$b);         }         return $a; }      function mix($a,$b,$c) {   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));    $b -= $c; $b -= $a; $b ^= ($a<<8);    $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));   $b -= $c; $b -= $a; $b ^= ($a<<16);   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));    $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));     $b -= $c; $b -= $a; $b ^= ($a<<10);    $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));      return array($a,$b,$c); }   function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {     if(is_null($length)) {         $length = sizeof($url);     }     $a = $b = 0x9E3779B9;     $c = $init;     $k = 0;     $len = $length;     while($len >= 12) {         $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));         $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));         $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));         $mix = mix($a,$b,$c);         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];         $k += 12;          $len -= 12;     }       $c += $length;     switch($len)              /* all the case statements fall through */     {         case 11: $c+=($url[$k+10]<<24);         case 10: $c+=($url[$k+9]<<16);         case 9 : $c+=($url[$k+8]<<8);           /* the first byte of c is reserved for the length */         case 8 : $b+=($url[$k+7]<<24);         case 7 : $b+=($url[$k+6]<<16);         case 6 : $b+=($url[$k+5]<<8);         case 5 : $b+=($url[$k+4]);         case 4 : $a+=($url[$k+3]<<24);         case 3 : $a+=($url[$k+2]<<16);         case 2 : $a+=($url[$k+1]<<8);         case 1 : $a+=($url[$k+0]);          /* case 0: nothing left to add */     }     $mix = mix($a,$b,$c);     /*-------------------------------------------- report the result */     return $mix[2]; }   //converts a string into an array of integers containing the numeric value of the char function strord($string) {     for($i=0;$i<strlen($string);$i++) {         $result[$i] = ord($string{$i});     }     return $result; } // http://www.example.com/ - Checksum: 6540747202 $url = 'info:'.$_GET['url']; $ch = GoogleCH(strord($url)); $url='info:'.urlencode($_GET['url']); $curl = curl_init("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url"); curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; GoogleToolbar 2.0.110-big; Windows 2000 5.0)"); curl_exec($curl); ?> Format:http://www.google.com/search?client=navclient-auto&ch=63860912239&features=Rank&q=info:http://bbs.z4.cn Related link: http://www.mobileread.com/forums/sh...p?threadid=1670 short :http://alex.vort-x.net/google/googlehash-source.php readable :http://alex.vort-x.net/google/googl...able-source.php http://forums.seochat.com/t12316/s.html http://www.top25web.com/pagerank.php http://www.abakus-internet-marketin...rts/seotest.htm http://www.zenitram.th4y.com/pagerank/?url=bbs.z4.cn http://cgi.ebay.com/ws/eBayISAPI.dl...ssPageName=WDVW also:http://pagerank-checksum.homelinux.com/http://www.zenitram.th4y.com/pagerank/?url=bbs.z4.cn


阅读全文(3827) | 回复(1) | 编辑 | 精华
 


回复:The Google Pagerank Checksum Calculator
电脑与网络

清风细雨发表评论于2005/2/15 10:30:16

    while (++$i < count($vals)) {            switch ($vals[$i]['type']) {               case 'open':                    if ( isset ( $vals[$i]['tag'] ) )                 {                     $tagname = $vals[$i]['tag'];                 } else {                     $tagname = '';                 }                   if ( isset ( $children[$tagname] ) )                 {                     $size = sizeof($children[$tagname]);                 } else {                     $size = 0;                 }                   if ( isset ( $vals[$i]['attributes'] ) ) {                     $children[$tagname][$size]['@'] = $vals[$i]["attributes"];                 }                   $children[$tagname][$size]['#'] = xml_depth($vals, $i);               break;                  case 'cdata':                 array_push($children, $vals[$i]['value']);              break;                case 'complete':                  $tagname = $vals[$i]['tag'];                   if( isset ($children[$tagname]) )                 {                     $size = sizeof($children[$tagname]);                 } else {                     $size = 0;                 }                   if( isset ( $vals[$i]['value'] ) )                 {                     $children[$tagname][$size]["#"] = $vals[$i]['value'];                 } else {                     $children[$tagname][$size]["#"] = '';                 }                   if ( isset ($vals[$i]['attributes']) ) {                     $children[$tagname][$size]['@']                                              = $vals[$i]['attributes'];                 }                           break;                case 'close':                 return $children;              break;         }        }        return $children;   }     /* function by acebone@f2s.com, a HUGE help!  *  * this helps you understand the structure of the array xmlize() outputs  *  * usage:  * traverse_xmlize($xml, 'xml_');  * print '<pre>' . implode("", $traverse_array . '</pre>';  *  *  */    function traverse_xmlize($array, $arrName = "array", $level = 0) {       foreach($array as $key=>$val)     {         if ( is_array($val) )         {             traverse_xmlize($val, $arrName . "[" . $key . "]", $level + 1);         } else {             $GLOBALS['traverse_array'][] = '$' . $arrName . '[' . $key . '] = "' . $val . "\"\n";         }     }       return 1;   } //Ends code from XMLize.php //Starts code from The Google Checksum Calculator //unsigned shift right function zeroFill($a, $b) {     $z = hexdec(80000000);         if ($z & $a)         {             $a = ($a>>1);             $a &= (~$z);             $a |= 0x40000000;             $a = ($a>>($b-1));         }         else         {             $a = ($a>>$b);         }         return $a; }     function mix($a,$b,$c) {   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));   $b -= $c; $b -= $a; $b ^= ($a<<8);   $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));   $b -= $c; $b -= $a; $b ^= ($a<<16);   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));     $b -= $c; $b -= $a; $b ^= ($a<<10);   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));      return array($a,$b,$c); }   function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {     if(is_null($length)) {         $length = sizeof($url);     }     $a = $b = 0x9E3779B9;     $c = $init;     $k = 0;     $len = $length;     while($len >= 12) {         $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));         $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));         $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));         $mix = mix($a,$b,$c);         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];         $k += 12;         $len -= 12;     }       $c += $length;     switch($len)              /* all the case statements fall through */     {         case 11: $c+=($url[$k+10]<<24);         case 10: $c+=($url[$k+9]<<16);         case 9 : $c+=($url[$k+8]<<8);           /* the first byte of c is reserved for the length */         case 8 : $b+=($url[$k+7]<<24);         case 7 : $b+=($url[$k+6]<<16);         case 6 : $b+=($url[$k+5]<<8);         case 5 : $b+=($url[$k+4]);         case 4 : $a+=($url[$k+3]<<24);         case 3 : $a+=($url[$k+2]<<16);         case 2 : $a+=($url[$k+1]<<8);         case 1 : $a+=($url[$k+0]);          /* case 0: nothing left to add */     }     $mix = mix($a,$b,$c);     /*-------------------------------------------- report the result */     return $mix[2]; }   //converts a string into an array of integers containing the numeric value of the char function strord($string) {     for($i=0;$i<strlen($string);$i++) {         $result[$i] = ord($string{$i});     }     return $result; } //End code from The Google Checksum Calculator ?> http://www.seroundtable.com/ http://www.seobook.com/


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.227 second(s), page refreshed 144772248 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号