What is Google PageRank? PageRank is a numeric value that represents how important a page is on the web. It is Google's way of measuring the importance of web site. Here is how Google explains PageRank: PageRank relies on the uniquely democratic nature of the web by using its vast link structure as an indicator of an individual page's value. Google interprets a link from page A to page B as a vote, by page A, for page B. But Google looks at more than the sheer volume of votes, or links a page receives; it also analyzes the page that casts the vote. Votes cast by pages that are themselves "important" weigh more heavily and help to make other pages "important." Google PageRank is mostly discussed by SEO's but also webmasters, web advertisers and publishers. For example, webmasters will not exchange links with websites whose PageRank is less then 4 or 5. Often, web publishers will pay less money for ads on websites with lower PageRanks. So how do you know what a PageRank of a website is? Simplest way to do it is to install Google toolbar. There are also various tools and scripts out there that will tell you the PageRank. One of the popular scripts was the one published by www.googlecommunity.com. Below is modified version of that script. I used the code to create a PHP class that can be easily implemented with your projects. I also included images for visual representation of the PageRank. To see the implementation of the code below visit BeWebmaster.com link directory. pagerank.php <?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]; } 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); $this->pr_image($pagerank); } } fclose($fp); } } PHP: //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; } } ?> PHP: Do following: Save the code above as pagerank.php. Download or create your own images to display each rank. Create a directory "images" containing all page rank images. See code below on how to use the class. <?php include("pagerank.php"); $gpr = new pageRank(); $gpr->printrank("http://www.yahoo.com"); //display image echo $gpr->get_pr(); ?> PHP: Done!
when I try to save the code none of the formatting stays (IE). If I use Firefox to copy the code I get the line numbers with the code. Am I missing something?
You can download the full code in a ZIP file from the site. http://www.soft-spot.co.uk/searchscript.htm Rezo did you code this? If so then well done, its a great script.
I was able to save the code in proper format with wordpad rather than notepad. Thanks for the code and help.
I was able to get the code working...thanks a bunch, been looking for a "free", non hosted version of this for a while (not a programmer).
holly sh1t - why you dont cut this crap to 3 lines: function pr_image($pagerank) { return '<img src="images/pr'.trim($pagerank).'.gif" alt="PageRank '.$pagerank.' out of 10">'; } PHP: (2 lines more to check if $pagerank is valid...) and yes, you can hire me as your programmer
I also think google allready blocked a lot of server from displaying page rank ... any one got the same issue ?
This script isn't actually allowed by google as it doesn't make use of the API. They do turn a blind eye to the thousands of sites that use it but if you make a bunch of queries then your IP might get banned.......
This script looks like the one I was using before, and the checksum it generates doesn't seem to work. Has anyone actually gotten this version to run lately? I have a working Javascript version that does generate the correct checksum, and the checksum generated by it looks totally differant than what this script produces. Any ideas on where to look for an updated version? Thanks. -Michael
It allows you to show the current toolbar PR of a url on your site. This can benefit anybody but its very useful if you have a directory. I use this script and it works fine.
i agree, such a pr-display can be very usefull for a directory: $pr=printrank($category_url); $price=(20*$pr)+9.95; echo "The listing fee for your category is US$".$price.", "; echo "or only US$".10+$price." for a featured (bold title!) listing."; PHP: