PHP: Google PageRank Uygulaması

Google Pagerank
Geçtiğimiz hafta içi website sahiplerin heyecanla karşıladıkları google pagerank güncellemesi gerçekleşti.  Google‘ın periyodik güncellediği arama algoritması doğrultusunda websitelerin PageRank değerleri de her 3 aylık periyotlarda değişiklik gösteriyor.
Bu makalede, online google page rank sorgulama uygulaması yapıyoruz.  Demo uygulamasını da sık sık kullanabilmek için bi yere not edin.  

Google Pagerank konusuna bağlı olarak, Google Backlink Sorgulama ve Alexa değerlerini sorgulama uygulamalarını da ekleyeceğim.

 


class GooglePageRankChecker {

private static $instance;

function getRank($page) {

if(!isset(self::$instance)) {
self::$instance = new self();
}

return self::$instance->check($page);
}
function stringToNumber($string,$check,$magic) {
$int32 = 4294967296; // 2^32
$length = strlen($string);
for ($i = 0; $i < $length; $i++) {
$check *= $magic;
if($check >= $int32) {
$check = ($check - $int32 * (int) ($check / $int32));
//if the check less than -2^31
$check = ($check < -($int32 / 2)) ? ($check + $int32) : $check;
}
$check += ord($string{$i});
}
return $check;
}

function createHash($string) {
$check1 = $this->stringToNumber($string, 0x1505, 0x21);
$check2 = $this->stringToNumber($string, 0, 0x1003F);

$factor = 4;
$halfFactor = $factor/2;

$check1 >>= $halfFactor;
$check1 = (($check1 >> $factor) &amp;amp;amp;amp; 0x3FFFFC0 ) | ($check1 &amp;amp;amp;amp; 0x3F);
$check1 = (($check1 >> $factor) &amp;amp;amp;amp; 0x3FFC00 ) | ($check1 &amp;amp;amp;amp; 0x3FF);
$check1 = (($check1 >> $factor) &amp;amp;amp;amp; 0x3C000 ) | ($check1 &amp;amp;amp;amp; 0x3FFF);

$calc1 = (((($check1 &amp;amp;amp;amp; 0x3C0) << $factor) | ($check1 &amp;amp;amp;amp; 0x3C)) << $halfFactor ) | ($check2 &amp;amp;amp;amp; 0xF0F );
$calc2 = (((($check1 &amp;amp;amp;amp; 0xFFFFC000) << $factor) | ($check1 &amp;amp;amp;amp; 0x3C00)) << 0xA) | ($check2 &amp;amp;amp;amp; 0xF0F0000 );

return ($calc1 | $calc2);
}

function checkHash($hashNumber)
{
$check = 0;
$flag = 0;

$hashString = sprintf('%u', $hashNumber) ;
$length = strlen($hashString);

for ($i = $length - 1; $i >= 0; $i --) {
$r = $hashString{$i};
if(1 === ($flag % 2)) {
$r += $r;
$r = (int)($r / 10) + ($r % 10);
}
$check += $r;
$flag ++;
}

$check %= 10;
if(0 !== $check) {
$check = 10 - $check;
if(1 === ($flag % 2) ) {
if(1 === ($check % 2)) {
$check += 9;
}
$check >>= 1;
}
}

return '7'.$check.$hashString;
}

function check($page) {

// Open a socket to the toolbarqueries address, used by Google Toolbar
$socket = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30);

// If a connection can be established
if($socket) {
// Prep socket headers
$out = "GET /tbr?client=navclient-auto&amp;amp;amp;amp;ch=".$this->checkHash($this->createHash($page)).
"&amp;amp;amp;amp;features=Rank&amp;amp;amp;amp;q=info:".$page."&amp;amp;amp;amp;num=100&amp;amp;amp;amp;filter=0 HTTP/1.1\r\n";
$out .= "Host: toolbarqueries.google.com\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)\r\n";
$out .= "Connection: Close\r\n\r\n";

// Write settings to the socket
fwrite($socket, $out);

// When a response is received...
$result = "";
while(!feof($socket)) {
$data = fgets($socket, 128);
$pos = strpos($data, "Rank_");
if($pos !== false){
$pagerank = substr($data, $pos + 9);
$result += $pagerank;
}
}
// Close the connection
fclose($socket);

// Return the rank!
return $result;
}
}
}

Pagerank uygulamasının basit bi demo ekranında ajax ile birlikte uyarlanmış halini inceleyebilirsiniz. Uygulama dosyasını aşağıdaki download bağlantısı ile indirebilirsiniz.

Örnek Kullanım:

echo $rank = GooglePageRankChecker::getRank(“serpito.com”);

// 2

Demo                     Download

4 thoughts on “PHP: Google PageRank Uygulaması

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir