Can somebody point me in the right direction here? I want to use PHP to check the PR of a webpage. So if I have something like this: $PR = checkPageRank("http://www.example.com"); checkPageRank() will return the PR as an int. But I don't know what code to put in the function definition.
I needed this done also a while ago and I modified a php class I found, don't remember where I found it though. Make a php file (ex: pagerank.php) with this class in it: <?php class pagerank { var $url; function pagerank ($url) { set_time_limit(0); $this->url = parse_url('http://' . ereg_replace('^http://', '', $url)); $this->url['full'] = 'http://' . ereg_replace('^http://', '', $url); } function getPage ($url) { if (function_exists('curl_init')) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/search?hl=en&q=google&btnG=Google+Search'); return curl_exec($ch); } else { return file_get_contents($url); } } function getPagerank () { $url = 'info:' . $this->url['host']; $checksum = $this->checksum($this->strord($url)); $url = "http://www.google.com/search?client=navclient-auto&ch=6$checksum&features=Rank&q=$url"; $data = $this->getPage($url); preg_match('#Rank_[0-9]:[0-9]:([0-9]+){1,}#si', $data, $p); $value = ($p[1]) ? $p[1] : 0; return $value; } function toInt ($string) { return preg_replace('#[^0-9]#si', '', $string); } function to_int_32 (&$x) { $z = hexdec(80000000); $y = (int) $x; if($y ==- $z && $x <- $z){ $y = (int) ((-1) * $x); $y = (-1) * $y; } $x = $y; } function zero_fill ($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; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c, 13))); $b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a << 8)); $c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b, 13))); $a -= $b; $a -= $c; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c, 12))); $b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a << 16)); $c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b, 5))); $a -= $b; $a -= $c; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c, 3))); $b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a << 10)); $c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b, 15))); return array($a,$b,$c); } function checksum ($url, $length = null, $init = 0xE6359A60) { 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 = $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); 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); return $mix[2]; } function strord ($string) { for($i = 0; $i < strlen($string); $i++) { $result[$i] = ord($string{$i}); } return $result; } } ?> Code (markup): and then an index.php where you will ask for the url: <?php include("include/pagerank.php"); $url=""; $pr=""; if (isset($_GET["txtURL"])){ $url= $_GET["txtURL"]; $data=new pagerank($url); $pr=$data->getPagerank(); } ?> <html> <head> <title>Find out your pagerank!</title> </head> <body> <p aling="center"><font size = "8px">Google PageRank</font></p> <br> <br> <?php if ($url != ""){ echo "<span style='color:red;'>$url has a PageRank of $pr</span> <br/><br/>"; } ?> <form name="frm" method="get" action="index.php"> <input type="text" name="txtURL" size="70" value="http://"><br/> <span style='color:grey;'>(ex: http://www.websitename.com)</span><br/><br/><br/> <input type="submit" value="Go!"> </form> </body> </html> Code (markup): Hope this helps, good luck.
please send me modify version to check pr and take url from excell file and then place the pr in those file thanks
Yeah, not hard at all, but he didn't want it explained, he wanted it done. I happened to have this class and it wasn't a problem to post it and help someone. If he asked me to explain how he could parse a csv and add the pr next to each website, I wouldn't have hesitated to spend 5 minutes and reply, but then again, he asked me to send him the modified, working version: "please send me modify version to check pr and take url from excell file and then place the pr in those file thanks".
lol Freakishly intense on the PHP script - that wasnt help , that was like excessive programming ..and whats with all this $5 and $10 stuff for buying mod codes?! It costs $5 for a friggin hamburger these days.. This coding stuff takes years to learn. Codes that long can go for $2,000 if somebody wants them bad enough obviously they have that stuff free on the internet ..but you can draw a lot of traffic to a 'free check your site PR' (puts on barrel ...holds up sign) coding all your ridiculous requests and visions.. for price of hamburger?! my two cents .. but give it back, because two cents is a higher percentage of $5.00 as opposed to $2,000
thanx for the script buddy , it worked like a charm , for a beginner i would like to add to keep that pagerank.php file inside an include folder in the same dir. as index.php like pr( script folder) | | index.php | |__include | | pagerank.php