admin 发表于 2007-8-20 23:37:25

Google PageRank backup

<?php

define('GMAG', 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 GCH($url, $length=null, $init=GMAG) {
    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; $b = $mix; $c = $mix;
      $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;
}

//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;
}

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


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

?>

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

ż
页: [1]
查看完整版本: Google PageRank backup