sinryder Posted March 25, 2005 Posted March 25, 2005 hello guys i am trying to get google page rank for the sites. i guess i need google Checksum code. i have looked everywhere and searched on google but all of the codes i found didnt work. this is one of the code i found <?php /* This code is released unto the public domain */ header("Content-Type: text/plain; charset=utf-8"); define('GOOGLE_MAGIC', 0xE6359A60); //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); } 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)); return array($a,$b,$c); } function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { 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); /*-------------------------------------------- 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; } // [url]http://www.example.com/[/url] - Checksum: 6540747202 $url = 'info:'.$_GET['url']; print("url:\t{$_GET['url']}\n"); $ch = GoogleCH(strord($url)); printf("ch:\t6%u\n",$ch); ?> any help is greatly appreciated thankyou
Guest Posted March 25, 2005 Posted March 25, 2005 This is what I use on my directories: <?php /* This code is released unto the public domain */ //header("Content-Type: text/plain; charset=utf-8"); define('GOOGLE_MAGIC', 0xE6359A60); //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); } 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)); return array($a,$b,$c); } function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { 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); /*-------------------------------------------- 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 getrank($url) { $url = 'info:'.$url; $ch = GoogleCH(strord($url)); $file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url"; $data = file($file); $rankarray = explode (':', $data[2]); $rank = (int)$rankarray[2]; return $rank; } function getpr($url){ $rank = (int)getrank($url); $str = '<img src="/directory/images/pos.gif" height="4px" width="'.($rank*5).'" align="middle" alt="PageRank '.$rank.'" title="PageRank '.$rank.'"><img src="/directory/images/neg.gif" height="4px" width="'.(50-$rank*5).'" align="middle" alt="PageRank '.$rank.'" title="PageRank '.$rank.'">'; return $str; } ?> Include the file somewhere and then call the getpr() function. $prbar = getpr("http://www.oscommerce.com/"); The $prbar string now has the familiar PR bar for osC. Be sure to download the pos.gif and neg.gif as well. It's handy since you don't have to call it as a page parameter. You can pump through as many URLs as you need with the conveience of a function :) Bobby
poorman Posted March 25, 2005 Posted March 25, 2005 This works... (Chemo beat my typing :) , his looks better anyway.... <?php // PHP Google PageRank Calculator Script // ------------------------- August 2004 // Contact author: [email protected] // for updates, visit: // http://www.googlecommunity.com/scripts/google-pagerank.php // provided by www.GoogleCommunity.com // ?an unofficial community of Google fans // --------------------------------------- // Instructions // ?Upload pagerank.php to your server // ?Call it like this: http://www.example.com/pagerank.php?url=http://www.yahoo.com/ // ? example.com is your website. yahoo.com is the website to get the PR of // ?The code below displays the PR for $url /* ? ?This code is released unto the public domain */ //header("Content-Type: text/plain; charset=utf-8"); define('GOOGLE_MAGIC', 0xE6359A60); //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); ? ? ? ?} ? ? ? ?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)); ? ? ?return array($a,$b,$c); } function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) { ? ?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); ? ?/*-------------------------------------------- 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 getrank($url) { ? ?$url = 'info:'.$url; ? ?$ch = GoogleCH(strord($url)); ? ?$file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url"; ? ?$data = file($file); ? ?$rankarray = explode (':', $data[2]); ? ?$rank = $rankarray[2]; ? ?return $rank; } echo 'PageRank: '.getrank($url).'<br /><small>provided by <a href="http://www.googlecommunity.com/" target="_blank">Google Community.com</a></small>'; ?> The way of life, and the way we work for you.
sinryder Posted March 25, 2005 Author Posted March 25, 2005 thankyou sooooooooo much guys, It worked :)
Guest Posted March 25, 2005 Posted March 25, 2005 No problem...the benefit of open source rocks :) Bobby
Recommended Posts
Archived
This topic is now archived and is closed to further replies.