/* The source code for the PageRank script is below. Copy & Paste the code between the tags below into some file with a .php extension, e.g. pagerank.php. You can use it in PHP as follows. To get the Toolbar PageRank: $url = "www.google.com"; echo "PageRank of " . $url . " is:
" . getrank($url); To use the getrealrank() function, you will need an xmltoarray function. Some can be found at the PHP.net entry for xml_parse_into_struct: www.php.net/xml_parse_into_struct *What the getrealreank() function does is parse the Google XML page for the URL, looking for any tag that matches the URL, or some permutation of it (with or without the http:// prefix, www. prefix, or a trailing slash /). The matching is case-insensitive. *It then returns the value for this item as the "real" pagerank. *Because of this, the tool has problems with URLs that are redirected. For example, www.espn.com is redirected to www.espn.go.com; and amazon.com is redirected to something like amazon.com/exec/obidos/subst/home/home.html. Even though Google recognizes this, the getrealrank() function will not. E.g.: $url = "www.google.com"; echo "The real PageRank of " . $url . " might be:
" . getrealrank($url); */ >1); $a &= (~$z); $a |= 0x40000000; $a = ($a>>($b-1)); } else { $a = ($a>>$b); } return $a; } function mix($a, $b, $c) { //This function is used in the Google Checksum calculation $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)); return array($a,$b,$c); } function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { //Calculate the Google Checksum for a given URL 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 = mix($a,$b,$c); $a = $mix[0]; $b = $mix[1]; $c = $mix[2]; $k += 12; $len -= 12; } $c += $length; switch($len) /* all the case statements fall through */ { 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]); /* case 0: nothing left to add */ } $mix = mix($a,$b,$c); return $mix[2]; } function strord($string) { //converts a string into an array of integers containing the numeric value of the char for($i=0;$i".getrank($url); */ ?>