Code lấy Google PageRank bằng PHP

Đã có nhiều công cụ kiểm tra Google PageRank rồi, code này chủ yếu để các bạn vọc hoặc là muốn tự tạo một công cụ kiểm tra PageRank trên chính trang web của bạn. Tuy không chắc rằng Google có khai tử PageRank trong năm 2014 này hay không, nhưng tinh thần học hỏi thì không bao giờ ngừng, bạn cứ thử làm code này trước khi mọi thứ quá muộn nhé.

Đầu tiên thì bạn tạo một class để đảm nhiệm nhiệm vụ lấy thông tin từ server của Google trước.

<?php
class PR {
	public function get_google_pagerank($url) {
	    $query="http://toolbarqueries.google.com/tbr?client=navclient-auto&ch=".$this->CheckHash($this->HashURL($url)). "&features=Rank&q=info:".$url."&num=100&filter=0";
	    $data=file_get_contents($query);
	    $pos = strpos($data, "Rank_");
	    if($pos === false){} else{
		$pagerank = substr($data, $pos + 9);
		return $pagerank;
	    }
	}
	 
	public function StrToNum($Str, $Check, $Magic)
	{
	    $Int32Unit = 4294967296;  // 2^32
	 
	    $length = strlen($Str);
	    for ($i = 0; $i < $length; $i++) {
		$Check *= $Magic;
	 
		if ($Check >= $Int32Unit) {
		    $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
		    $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
		}
		$Check += ord($Str{$i});
	    }
	    return $Check;
	}
	 
	public function HashURL($String)
	{
	    $Check1 = $this->StrToNum($String, 0x1505, 0x21);
	    $Check2 = $this->StrToNum($String, 0, 0x1003F);
	 
	    $Check1 >>= 2;
	    $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
	    $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
	    $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);
	 
	    $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
	    $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
	 
	    return ($T1 | $T2);
	}
	 
	public function CheckHash($Hashnum)
	{
	    $CheckByte = 0;
	    $Flag = 0;
	 
	    $HashStr = sprintf('%u', $Hashnum) ;
	    $length = strlen($HashStr);
	 
	    for ($i = $length - 1;  $i >= 0;  $i --) {
		$Re = $HashStr{$i};
		if (1 === ($Flag % 2)) {
		    $Re += $Re;
		    $Re = (int)($Re / 10) + ($Re % 10);
		}
		$CheckByte += $Re;
		$Flag ++;
	    }
	 
	    $CheckByte %= 10;
	    if (0 !== $CheckByte) {
		$CheckByte = 10 - $CheckByte;
		if (1 === ($Flag % 2) ) {
		    if (1 === ($CheckByte % 2)) {
		        $CheckByte += 9;
		    }
		    $CheckByte >>= 1;
		}
	    }
	 
	    return '7'.$CheckByte.$HashStr;
	}
}
?>

Bạn lưu class trên với tên pr.class.php, sau đó tạo một tập tin PHP khác để sử dụng lại code này:

<?php
include_once("pr.class.php");
$url='http://sauhi.com';
$pr = new PR();
echo "$url PageRank: ". $pr->get_google_pagerank($url) ;
?>

Bạn chạy thử tập tin vừa tạo xem có đúng là trang của bạn có Google PageRank là như thế không nhé. Bạn có thể kiểm tra lại và so sánh kết quả với những công cụ đang chạy trực tuyến hoặc thông qua Google Toolbar.

Tải về máy tính pr.class.php

Gửi bình luận của bạn 6 bình luận

Gửi bình luận

Địa chỉ email của bạn sẽ được giữ bí mật. Những mục bắt buộc được đánh dấu *