NameSilo

[Resolved] Get PR + Pages Indexed?

Spaceship Spaceship
Watch

jakeruston

Established Member
Impact
6
Get PR + Pages Indexed?

Hi,

In my PHP script, I need a way to get the Google PageRank and the number of Pages Indexed on any URL via function. The ones I've found on Google don't seem to work.

Does anyone have any ideas?
 
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
GoDaddyGoDaddy
You can download free PHP LD and check the pagerank module.
Or you can get PageRank script on PHPClasses.org. You can get number of indexed page script on PHPClasses.org too. :)
 
0
•••
Right I've worked out how to do the PageRank, but I'm having problems with Indexed Pages.

I can get the number with this code:

function yahoo_indexed($uri) {
$yahooAppId1 = "MY ID";
$yahoourl="http://search.yahooapis.com/SiteExplorerService/V1/inlinkData?appid=".$appid."&query=".$uri."&start=1&domain_only=1&results=1&output=php";
$data = @file_get_contents($yahoourl);
$results=unserialize($data);
return $results['ResultSet']['totalResultsAvailable']; //$results[0][1];
}

It returns the result but it doesn't seem to let me work with the number to add it to other numbers and such.
 
0
•••
If "indexed page" is equal with "backlink" (im not sure :)), here's the class : (together with PR class, i got it from PHPClasses,org)

"function.class.php"
PHP:
<?php
class functions {
	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;
		}
		//
		//
		//
		function format_number ($number='', $divchar = ',', $divat = 3) {
			$decimals = '';
			$formatted = '';
			if (strstr($number, '.')) {
				$pieces = explode('.', $number);
				$number = $pieces[0];
				$decimals = '.' . $pieces[1];
			} else {
				$number = (string) $number;
			}
			if (strlen($number) <= $divat)
				return $number;
				$j = 0;
			for ($i = strlen($number) - 1; $i >= 0; $i--) {
				if ($j == $divat) {
					$formatted = $divchar . $formatted;
					$j = 0;
				}
				$formatted = $number[$i] . $formatted;
				$j++;
			}
			return $formatted . $decimals;
		}
	}
?>

"rank.class.php"
PHP:
<?php
require_once(dirname(__FILE__).'/functions.class.php');

class rank extends functions {
	var $url;
	var $pagerank;
	var $alexa_rank;
	var $backlinks = array('google' => '', 'yahoo' => '', 'msn' => '', 'altavista' => '', 'alltheweb' => '');
	var $dmoz;

	#start
	function rank ($url) {
		$this->url = $url;
		$this->url = preg_replace('/http\:\/\//si', '', $this->url);
		$this->pagerank = $this->__pagerank();
		$this->alexa_rank = $this->__alexa_rank();
		$this->backlinks['google'] = $this->__backlinks('google');
		$this->backlinks['yahoo'] = $this->__backlinks('yahoo');
		$this->backlinks['msn'] = $this->__backlinks('msn');
		$this->backlinks['altavista'] = $this->__backlinks('altavista');
		$this->backlinks['alltheweb'] = $this->__backlinks('alltheweb');
	}
	
	#pagerank
	function __pagerank () {
		$url = 'info:' . urldecode($this->url);
		$checksum = $this->checksum($this->strord($url));
		$url = 'http://www.google.com/search?client=navclient-auto&ch=6' . $checksum . '&features=Rank&q=' . $url;
		$v = $this->my_curl_crawl($url);
		preg_match('/Rank_([0-9]+):([0-9]+):([0-9]+)/si', $v, $r);
		return ($r[3]) ? $r[3] : '0';
	}
	
	#alexa_rank
	function __alexa_rank () {
		$url = 'http://data.alexa.com/data?cli=10&dat=snbamz&url=' . urlencode($this->url);
		$v = $this->my_curl_crawl($url);
		preg_match('/\<popularity url\="(.*?)" TEXT\="([0-9]+)"\/\>/si', $v, $r);
		return ($r[2]) ? $r[2] : '0';
	}
	
	#backlinks
	function __backlinks ($engine) {
		switch ($engine) {
			#google
			case 'google':
				$url = 'http://www.google.com/search?q=link%3A' . urlencode($this->url);
				$v = $this->my_curl_crawl($url);
				preg_match('/of about \<b\>([0-9\,]+)\<\/b\>/si', $v, $r);
				return ($r[1]) ? str_replace(',', '', $r[1]) : '0';
			break;
			#yahoo
			case 'yahoo':
				$url = 'http://search.yahoo.com/search?p=links%3A' . urlencode($this->url);
				$v = $this->my_curl_crawl($url);
				preg_match('/of about ([0-9\,]+)/si', $v, $r);
				return ($r[1]) ? str_replace(',', '', $r[1]) : '0';
			break;
			#msn
			case 'msn':
				$url = 'http://search.msn.com/results.aspx?q=link%3A' . urlencode($this->url);
				$v = $this->my_curl_crawl($url);
				preg_match('/of ([0-9\,]+) results/si', $v, $r);
				return ($r[1]) ? str_replace(',', '', $r[1]) : '0';
			break;
			#altavista
			case 'altavista':
				$url = 'http://www.altavista.com/web/results?q=link%3A' . urlencode($this->url);
				$v = $this->my_curl_crawl($url);
				preg_match('/found ([0-9\,]+) results/si', $v, $r);
				return ($r[1]) ? str_replace(',', '', $r[1]) : '0';
			break;
			#alltheweb
			case 'alltheweb':
				$url = 'http://www.alltheweb.com/search?q=link%3A' . urlencode($this->url);
				$v = $this->my_curl_crawl($url);
				preg_match('/\<span class\="ofSoMany"\>([0-9\,]+)\<\/span\>/si', $v, $r);
				return ($r[1]) ? str_replace(',', '', $r[1]) : '0';
			break;
		}
	}

	function my_curl_crawl($url) {
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
		curl_setopt($ch, CURLOPT_VERBOSE, 0);
		$content = curl_exec($ch);
		curl_close($ch);
		return($content);
	}
}
?>

Usage :
PHP:
<?php
require_once('rank.class.php');
$rank = new rank('www.example.com');

echo($rank->pagerank);

print_r($rank->backlinks);
?>
 
0
•••
Appraise.net

We're social

Unstoppable Domains
Domain Recover
NameMaxi - Your Domain Has Buyers
  • The sidebar remains visible by scrolling at a speed relative to the page’s height.
Back