PageRank Script Not Working

Discussion in 'PHP' started by sambling, Aug 17, 2011.

  1. #1
    Trying to do a pagerank site but the script has failed on the key point PageRank! It fetches alexa etc. so its a specific issue.

    Is there anything wrong with this code:

    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;
    echo "\t<pagerank>$value</pagerank>\n";
    }

    Thanks for the help - I don't know php myself probably should learn :)
     
    sambling, Aug 17, 2011 IP
  2. MyVodaFone

    MyVodaFone Well-Known Member

    Messages:
    1,048
    Likes Received:
    42
    Best Answers:
    10
    Trophy Points:
    195
    #2
    <?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;
    		}
    
    //USAGE  
    
      $pr = getPageRank('http://digitalpoint.com');
      
      echo 'Website Pagerank is <b>'.$pr.'</b>'; // Currently 4
    
    ?>
    PHP:
     
    Last edited: Aug 18, 2011
    MyVodaFone, Aug 18, 2011 IP
  3. freelanceinphp

    freelanceinphp Member

    Messages:
    134
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    48
    #3
    see
     
    freelanceinphp, Aug 18, 2011 IP
  4. sambling

    sambling Well-Known Member Affiliate Manager

    Messages:
    954
    Likes Received:
    9
    Best Answers:
    1
    Trophy Points:
    100
    #4
    Thankyou :)
     
    sambling, Aug 18, 2011 IP