define('GOOGLE_MAGIC', 0xE6359A60); class pageRank{ var $pr; 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 ^= ($this->zeroFill($c,13)); $b -= $c; $b -= $a; $b ^= ($a<<8); $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,13)); $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,12)); $b -= $c; $b -= $a; $b ^= ($a<<16); $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,5)); $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,3)); $b -= $c; $b -= $a; $b ^= ($a<<10); $c -= $a; $c -= $b; $c ^= ($this->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 = $this->mix($a,$b,$c); $a = $mix[0]; $b = $mix[1]; $c = $mix[2]; $k = 12; $len -= 12; } $c = $length; switch($len){ 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]); } $mix = $this->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; }
function printrank($url){ $ch = "6".$this->GoogleCH($this->strord("info:" . $url));
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); if(!$fp){ echo "$errstr ($errno)<br />\n"; }else{ $out = "GET /search?client=navclient-auto&ch=" . $ch . "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ; $out .= "Host: www.google.com\r\n" ; $out .= "Connection: Close\r\n\r\n" ; fwrite($fp, $out); while (!feof($fp)) { $data = fgets($fp, 128); $pos = strpos($data, "Rank_"); if($pos === false){ }else{ $pagerank = substr($data, $pos 9); fclose($fp); return array($pagerank,$url); } } fclose($fp); return array(0,$url); } }
function printranks($domains){ foreach($domains as $value){ $elements[] = $this->printrank($value); } return $elements; } //display pagerank image. Create your own or download images I made for this script. If you make your own make sure to call them pr0.gif, pr1.gif, pr2.gif etc. function get_pr(){ return $this->pr; } } $gpr = new pageRank(); var_dump($gpr->printrank("www.mb5u.com"));
|