<?php 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 ^= (zeroFill($c,13)); $b -= $c; $b -= $a; $b ^= ($a<<8); $c -= $a; $c -= $b; $c ^= (zeroFill($b,13)); $a -= $b; $a -= $c; $a ^= (zeroFill($c,12)); $b -= $c; $b -= $a; $b ^= ($a<<16); $c -= $a; $c -= $b; $c ^= (zeroFill($b,5)); $a -= $b; $a -= $c; $a ^= (zeroFill($c,3)); $b -= $c; $b -= $a; $b ^= ($a<<10); $c -= $a; $c -= $b; $c ^= (zeroFill($b,15)); $arr = array($a,$b,$c); return $arr; } function GoogleCH($arr) { $url = $arr; $length = 0; $init = 0xE6359A60; $a = 0x9E3779B9; $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)); $tmparr = mix($a,$b,$c); $a = $tmparr[0]; $b = $tmparr[1]; $c = $tmparr[2]; $k += 12; $len -= 12; } $c += $length; while($len <= 11 && $len > 0) { if($len == 11) $c+=($url[$k+10]<<24); if($len == 10) $c+=($url[$k+9]<<16); if($len == 9) $c+=($url[$k+8]<<8); if($len == 8) $b+=($url[$k+7]<<24); if($len == 7) $b+=($url[$k+6]<<16); if($len == 6) $b+=($url[$k+5]<<8); if($len == 5) $b+=($url[$k+4]); if($len == 4) $a+=($url[$k+3]<<24); if($len == 3) $a+=($url[$k+2]<<16); if($len == 2) $a+=($url[$k+1]<<8); if($len == 1) $a+=($url[$k+0]); $len--; } $tmparr= mix($a,$b,$c); return $tmparr[2]; } function strord($string) { $result = array(); $char = explode(" ", $string); for($i=0; $i<strlen($string); $i++) { $result[$i] = ord($char[$i]); } return $result; } function getrank ($url) { $url = 'info:'.$url; $ch = GoogleCH(strord($url)); $curl = 0; if ($curl) { $ch = curl_init(); curl_setopt($ch,SETOPT_URL,"http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url"); $file = curl_exec($ch); } else { $file = file("http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url"); } $rankarray = explode("/:|\n/", $file); return $rankarray[4]; } function getPr() { //$getUrl = $address_widget->get_text; // $settext = $pgrankapp->get_widget('rankvalue')->set_text(getrank($getUrl)); } $rank = getrank($_GET[u]); print "Pagerank for $_GET[u]: $rank\n"; ?> PHP: Jason
Finally I managed to fix known bugs in php script ... here is my implementation... http://www.easywebtech.com/google-pagerank-checker.php
Here's an "advanced" version using the Perl CPAN module - basically just wraps some error checking around what could not be any simpler ... plus makes it optional to have the leading http:// #!/usr/bin/perl # Get GooglePageRank using CPAN Module use strict; use warnings; use WWW::Google::PageRank; my ($pr, $rank, $url); if (defined($ARGV[0]) ){ $url = $ARGV[0]; $url = "http://" . $url if ($url !~ /^http:\/\//); $pr = WWW::Google::PageRank->new(); $rank = $pr->get($url); print "$url has a PageRank of "; if (defined($rank)) { print "$rank\n"; } else { print "UNDEFINED\n"; } } else { print "You must specify a URL ...\n"; } exit; Code (markup):