Close Search Box
Search Box

Search: From:

Close
Newsletter

9Tutorials to your Inbox



PHP script to display Google PageRank

PHP script to display Google PageRank
Author lv1 (3900/5000)
3,961 views
1 Star2 Star3Star4 Star5 Star (10 votes, average: 3.50 out of 5)

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:

  1. Save the code above as pagerank.php.
  2. Download or create your own images to display each rank.
  3. Create a directory “images” containing all page rank images.
  4. 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

 

 

del.icio.us:PHP script to display Google PageRank digg:PHP script to display Google PageRank spurl:PHP script to display Google PageRank newsvine:PHP script to display Google PageRank blinklist:PHP script to display Google PageRank furl:PHP script to display Google PageRank reddit:PHP script to display Google PageRank blogmarks:PHP script to display Google PageRank Y!:PHP script to display Google PageRank magnolia:PHP script to display Google PageRank segnalo:PHP script to display Google PageRank

Post a Comment »








Safari hates me

Comment Guidelines

  • Hyperlinks are automatically generated.
  • <em>italic</em>
  • <strong>bold</strong>
  1. Website Design India June 6, 2007

    Its a nice tutorial, i am already using one in my site

  2. PHP script to display Google PageRank - Tutorial Collection June 4, 2009

    [...] View Tutorial No Comment var addthis_pub=”izwan00″; BOOKMARK This entry was posted on Friday, June 5th, 2009 at 5:54 am and is filed under Php Tutorials. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site. [...]