Code lấy Google PageRank bằng PHP

Cập nhật lần cuối vào

Đã 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

Theo dõi
Thông báo của
guest

9 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Jam Việt
9 năm trước

Trước có làm thành công xong không biết mình quăng đi đâu mất ! Hix !

ve may bay gia re
9 năm trước

Cái này không tốt cho SEO rồi đó bạn. Chơi qua mắt Google có ngày cũng die thôi.

Người Vô Danh
Người Vô Danh
9 năm trước
Trả lời  ve may bay gia re

Đọc comment của bạn mà mình buồn cười =))

Văn Luận
7 năm trước
Trả lời  Người Vô Danh

K hiểu ý của bác lắm

gái đẹp
gái đẹp
9 năm trước

Có cả loại này luôn hả a Sáu? quá bá, nhưng nghe ông ở trên comment nên không dám thử 🙁

ve may bay gia re
9 năm trước

bạn đọc tiêu đề nội dung đi. Sao nói là kiểm tra.

Công ty dịch thuật miền trung

PR bị khai tử rồi giờ MOZ đang lên ngôi

Văn Luận
7 năm trước

Moz là gì vậy bác