0

Hi,
I used this code to check page rank.
E.g.http://www.orkut.com
it gives page rank : 8

it works on localhost perfectly.

But when same code i put on my ftp i.e. live
it gives wrong output
Page rank: -1

I think some setting in php.ini or some other setting.

Please tell me how to do this??

<?
if ((isset($_GET["action"]))and ($_GET["action"]=="add"))
	{
			 $posted_url=$_POST['posted_url'];
			
			include("PageRankFunctions.php");
				
			$pageRank=getPageRank($posted_url);
		echo $msg=$pageRank;
}
?>
<form name="frm_find_rank" action="page_rank.php?action=add" method="post"  onSubmit='return validate_find_rank();'>

<input name='posted_url'  type='text' class="input_textarea" id="posted_url" value="<? if(isset($_POST['posted_url'])){ echo $_POST['posted_url'];}?>" >

<input name="submit" type="submit" class="btnstyle" value="Find Rank" />

File PageRankFunctions.php

<?php
	define('GOOGLE_MAGIC', 0xE6359A60);

		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){
				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 = _mix($a,$b,$c);
			return $_mix[2];
		}

		function _strord($string){
			for($i=0;$i<strlen($string);$i++)
				$result[$i] = ord($string{$i});
			return $result;
		}

		function getPageRank($url){
			$pagerank = -1;
			$ch = "6"._GoogleCH(_strord("info:" . $url));
			$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
			if($fp){
				$out = "GET /search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n";
				$out .= "Host: www.google.com\r\n";
				$out .= "Connection: Close\r\n\r\n";
				fwrite($fp, $out);
				while (!feof($fp)){
					$data = fgets($fp, 128);
					$pos = strpos($data, "Rank_");
					if($pos === false){
					}else
						$pagerank = substr($data, $pos + 9);
				}
				fclose($fp);
			}
			return $pagerank;
		}
?>
2
Contributors
1
Reply
2
Views
7 Years
Discussion Span
Last Post by FlashCreations
0

If I'm not mistaken, Google frowns upon the checking of page ranks like this. They might have prevented your site from checking.

My guess is that your PHP does not allow sockets, but there could be another reason.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.