Hi, I've moved host to bluehost and most things have been runnign smoothly, but my page rank script has stopped working. it still works on my old host. Please could someone help me fix this. The script that works on my original host is at the bottom of this post. I've also tried the script here: http://www.webmasterworld.com/php/3318556.htm, but get this error: Parse error: syntax error, unexpected T_STRING in /home/dawjeeco/public_html/pr.php on line 34 My PHP version is PHP Version 4.4.7. Line 34 is: $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) ¦ ($Check1 & 0x3F); Cheers, fcmisc. <?php 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 getrank($url){ $ch = "6".$this->GoogleCH($this->strord("info:" . $url)); $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); if (!$fp) { echo "ERROR: $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); //echo '---' . $data; $pos = strpos($data, "Rank_"); if($pos === false){ }else{ $pagerank = substr($data, $pos + 9); $this->pr_image($pagerank); } } fclose($fp); return $pagerank; } } function printrank($url){ $ch = "6".$this->GoogleCH($this->strord("info:" . $url)); $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30); if (!$fp) { echo "ERROR: $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); //echo '---' . $data; $pos = strpos($data, "Rank_"); if($pos === false){ }else{ $pagerank = substr($data, $pos + 9); $this->pr_image($pagerank); } } fclose($fp); echo $pagerank; } } //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 pr_image($pagerank){ if($pagerank == 0){ $this->pr = "<img src=\"images/pr0.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 1){ $this->pr = "<img src=\"images/pr1.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 2){ $this->pr = "<img src=\"images/pr2.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 3){ $this->pr = "<img src=\"images/pr3.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 4){ $this->pr = "<img src=\"images/pr4.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 5){ $this->pr = "<img src=\"images/pr5.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 6){ $this->pr = "<img src=\"images/pr6.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 7){ $this->pr = "<img src=\"images/pr7.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 8){ $this->pr = "<img src=\"images/pr8.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }elseif($pagerank == 9){ $this->pr = "<img src=\"images/pr9.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; }else{ $this->pr = "<img src=\"images/pr10.gif\" alt=\"PageRank " .$pagerank. " out of 10\">" ; } } function get_pr(){ return $this->pr; } } $gpr = new pageRank(); $gpr->printrank($_GET['url']);
When I run your code I see this. http://dnfinder.com/rentacoder/pagerank2.php?url=yahoo.com Any idea why? I can't seem to get it to work at all. (I just commented back in data so you can see what it's grabbing).
Your feedback inspired me to type pagerank script forbidden into google, and I found the following script which works for me: http://www.hm2k.com/?dl=pagerank.phps
x11joex11, I had the same: I changed hosting and it did not work any more I finally discovered that the PR script is not compatible with 64 bits hosting machines Is your new hosting 64 bits powered?
fcmisc your script worked! http://dnfinder.com/rentacoder/pagerank3.php?url=yahoo.com Thanks so much =).