| NamePros Member | PHP5 class to get Google PageRank This PHP5 class computes the Google PR for any URL. Source code is available online and this is the PHP5 version, can be plugged into any application/software. PHP Code: <?php
/** source available online in public domain
* @author Son Nguyen
* @since 3/30/2006
* @package Framework
* @subpackage WebServices
*/
class CGooglePR {
/** constructor */
function __construct() {
}
function getRank($pURL) {
$pURL = 'info:'.$pURL;
$ch = $this->GoogleCH($this->strord($pURL));
$vFile = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=".$pURL;
$data = file($vFile);
$rankarray = explode (':', $data[2]);
$rank = $rankarray[2];
return intval($rank);
}
/** unsigned shift right */
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);
} // fi
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);
}
/** converts a string into an array of integers containing the numeric value of the char */
function strord($pStr) {
$vResult = array();
for($i=0;$i<strlen($pStr);$i++) {
$vResult[$i] = ord($pStr{$i});
} // rof
return $vResult;
}
function GoogleCH($url,$length=null,$init=0xE6359A60) {
if(is_null($length)) {
$length = sizeof($url);
} // fi
$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;
} // rof
$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);
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]);
/* case 0: nothing left to add */
} // esac
$mix = $this->mix($a,$b,$c);
return $mix[2];
}
}
?>
__________________ 123finder.com - Browse dictionary domains & 4-9 letter domains
|