I found many scripts, which chek google pr, but noone work on those my servers, where I have PHP last version. Can u give me the code, which I can use for get pr? Great thanks for this...
It's quite possible that Google is not responding to your HTTP requests for the data in the first place. For some reason one of my servers can do HTTP requests to most places but as soon as I tried running the PR checker scripts, they failed. Eventually I found that the connection was never being made. I was only using it for a directory so instead of working it all out I spent 30 minutes and wrote a script to run on localhost that let's me copy in URLs and then it spits out the MySQL queries I need to run remotely to update the tables
hi here is a Working Code of PR , it had been tested Properly this code uses a class which is definatly not Writen by me you need to Create a File names <?php /****************** * PageRankXor32 class created by MagicBeanDip * PageRank class was created by others * Look for updates at http://v1.magicbeandip.com/mbd-file/PageRankReport.php * This code is released into the Public Domain * * Sample use: * include('PageRankXor32.php'); * $oPR=new PageRankXor32(); * echo $oPR->getRank('http://www.amazon.com'); * ******************/ define('GOOGLE_MAGIC', 0xE6359A60); // Use this class if your server is having problems with bitwise operations class PageRankXor32 extends PageRank { function xor32($a, $b) { return $this->int32($a) ^ $this->int32($b); } //return least significant 32 bits //works by telling unserialize to create an integer even though we provide a double value function int32($x) { return unserialize("i:$x;"); //return intval($x); // This line doesn't work on all servers. } function mix($a,$b,$c) { $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,13)); $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<8); $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,13)); $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,12)); $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<16); $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,5)); $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,3)); $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<10); $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,15)); return array($a,$b,$c); } } //This class should work on most servers class PageRank { 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; } //returns -1 if no page rank was found function getRank($url){ $ch = "6".$this->GoogleCH($this->strord("info:" . $url)); $pagerank=-1; $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 = trim(substr($data, $pos + 9)); } } fclose($fp); } return $pagerank; } } PHP: here is the File to Obtain the PR using Above File require_once 'PageRankXor32.php'; $oPR=new PageRankXor32(); $URL='http://www.click.pk/'; $PR = $oPR->getRank($URL); echo $PR; PHP: Try it. i am sure it will work , as i have tested it on many servers and with many scripts specially with PHPLD Ali Kashif http://www.click.pk
Hi akashif: Unfortunately, I've already tried that one, too. My server might be 'freaky' or something, but it definitely cannot connect to the Google server. It just times out... Anyway, just thought I'd let you know that although it does seem to help a number of people out that weren't able to use it before, it definitely doesn't solve all problems. Who knows? Ice_sCream's problem could be that outgoing HTTP connections are banned on his server: only s/he can tell us that, though