找回密码
 注册账户
查看: 2256|回复: 5

Google PageRank backup

[复制链接]
admin 发表于 2007-8-20 23:37:25 | 显示全部楼层 |阅读模式
  1. <?php

  2. define('GMAG', 0xE6359A60);

  3. //unsigned shift right
  4. function zeroFill($a, $b)
  5. {
  6.     $z = hexdec(80000000);
  7.         if ($z & $a)
  8.         {
  9.             $a = ($a>>1);
  10.             $a &= (~$z);
  11.             $a |= 0x40000000;
  12.             $a = ($a>>($b-1));
  13.         }
  14.         else
  15.         {
  16.             $a = ($a>>$b);
  17.         }
  18.         return $a;
  19. }


  20. function mix($a,$b,$c) {
  21.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
  22.   $b -= $c; $b -= $a; $b ^= ($a<<8);
  23.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  24.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  25.   $b -= $c; $b -= $a; $b ^= ($a<<16);
  26.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  27.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));  
  28.   $b -= $c; $b -= $a; $b ^= ($a<<10);
  29.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  30.   
  31.   return array($a,$b,$c);
  32. }

  33. function GCH($url, $length=null, $init=GMAG) {
  34.     if(is_null($length)) {
  35.         $length = sizeof($url);
  36.     }
  37.     $a = $b = 0x9E3779B9;
  38.     $c = $init;
  39.     $k = 0;
  40.     $len = $length;
  41.     while($len >= 12) {
  42.         $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
  43.         $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
  44.         $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
  45.         $mix = mix($a,$b,$c);
  46.         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
  47.         $k += 12;
  48.         $len -= 12;
  49.     }

  50.     $c += $length;
  51.     switch($len)              /* all the case statements fall through */
  52.     {
  53.         case 11: $c+=($url[$k+10]<<24);
  54.         case 10: $c+=($url[$k+9]<<16);
  55.         case 9 : $c+=($url[$k+8]<<8);
  56.           /* the first byte of c is reserved for the length */
  57.         case 8 : $b+=($url[$k+7]<<24);
  58.         case 7 : $b+=($url[$k+6]<<16);
  59.         case 6 : $b+=($url[$k+5]<<8);
  60.         case 5 : $b+=($url[$k+4]);
  61.         case 4 : $a+=($url[$k+3]<<24);
  62.         case 3 : $a+=($url[$k+2]<<16);
  63.         case 2 : $a+=($url[$k+1]<<8);
  64.         case 1 : $a+=($url[$k+0]);
  65.          /* case 0: nothing left to add */
  66.     }
  67.     $mix = mix($a,$b,$c);
  68.     /*-------------------------------------------- report the result */
  69.     return $mix[2];
  70. }

  71. //converts a string into an array of integers containing the numeric value of the char
  72. function strord($string) {
  73.     for($i=0;$i<strlen($string);$i++) {
  74.         $result[$i] = ord($string{$i});
  75.     }
  76.     return $result;
  77. }

  78. function getPR($_url) {
  79.     $url = 'info:'.$_url;
  80.     $ch = GCH(strord($url));
  81.     $url='info:'.urlencode($_url);
  82.     $pr = file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
  83.     $pr_str = implode("", $pr);
  84.     return substr($pr_str,strrpos($pr_str, ":")+1);
  85. }


  86. echo "The PR of your website is: ".getPR("http://www.example.com");

  87. ?>
复制代码
abo521 发表于 2007-10-19 08:58:53 | 显示全部楼层
收下了....
lkjpasdq 发表于 2007-10-19 14:55:20 | 显示全部楼层
看看先
gzvinmen 发表于 2007-10-22 01:15:17 | 显示全部楼层
有什么用?不懂
beginze 发表于 2008-4-16 23:41:41 | 显示全部楼层
拿什么感谢你
pwycctv 发表于 2008-11-4 08:00:04 | 显示全部楼层
ż
您需要登录后才可以回帖 登录 | 注册账户

本版积分规则

存档|黑屋|手机|网络实验室 本站服务器由美国合租以及IDCLayer国际数据提供!!!

GMT+8, 2026-6-5 01:46 , Processed in 0.009021 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表