PHP script to display 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.
pagerank.php
[source: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 |= 0×40000000;
$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 = 0×9E3779B9;
$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);
$this->pr_image($pagerank);
}
}
fclose($fp);
}
}
//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){
$this->pr = “<img src=\”images/pr”.$pagerank.“.gif\” alt=\”PageRank “.$pagerank.” out of 10\”>” ;
}
function get_pr(){
return $this->pr;
}
}
?>
[/source]
Usage
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.
[source:php]
<?php
include(”pagerank.php”);
$gpr = new pageRank();
$gpr->printrank(”http://www.yahoo.com“);
//display image
echo $gpr->get_pr();
?>
[/source]
UPDATE:
Some servers calculate the checksum differently which makes the script unusable. If the script doesn’t work for you test the script on a server (some free hosting account with PHP) that does it correctly and get the result that way.
Copyright @ BeWebmaster 2007

- Creating thumbnail – Resize an image with PHP
- Interstitial pages with javascript
- Get Google Adsense statistics by using PHP
- Creating an object oriented MySQL abstraction class
- AJAX Generic Form Parser – With Validation
- How to Develop Web Applications with Ajax
- Easy composition but nice result
- ASP.NET Breadcrumbs with C#
- Using PHP to get prices from Amazon.com
- Cache in PHP
- Illustrator tracing tutorial
- Making a Grungy Business Card
- The Dark Knight Grunge Wallpaper
- Make Up Effect for the Face
- Implementing SQL Server 2005 Query Notifications in C# Windows Application
- Create cool fantasy art
- Master the brush in Photoshop
- Cool glassy icon creation
- The little mermaid – Photo Effects
- Let’s Make a Playful Yet Robust 3D Letter Design
Login
Friends' Sites
Contact Us
Categories
- 3D
- After Effect
- ASP
- C#
- CSS
- Database
- Flash
- GIMP
- Hosting
- Illustrator
- Java
- Javascript
- Linux
- Office
- Photoshop
- PHP
- Resources
- Web Design
- Windows

3,961 views
2 Comments

(10 votes, average: 3.50 out of 5)
2 Comments
Jump to comment form | comments rss [?] | trackback uri [?]