php gets the google pr value of the website
Release: 2016-07-25 08:57:50
Original
1220 people have browsed it
-
- /**
- * php code to obtain the PR value of the website
- * by bbs.it-home.org
- */
- $googlehost="toolbarqueries.google.com";
- $googleua="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5";
- echo getpr('http://bbs.it-home.org');
- //convert a string to a 32-bit integer
- function StrToNum($Str, $Check, $Magic) {
- $Int32Unit = 4294967296; // 2^32
- $length = strlen($Str);
- for ($i = 0; $i < $length; $i++) {
- $Check *= $Magic;
- //If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31),
- // the result of converting to integer is undefined
- // refer to http://www.php.net/manual/en/language.types.integer.php
- if ($Check >= $Int32Unit) {
- $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
- //if the check less than -2^31
- $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
- }
- $Check += ord($Str{$i});
- }
- return $Check;
- }
- //genearate a hash for a url
- function HashURL($String) {
- $Check1 = StrToNum($String, 0×1505, 0×21);
- $Check2 = StrToNum($String, 0, 0×1003F);
- $Check1 >>= 2;
- $Check1 = (($Check1 >> 4) & 0×3FFFFC0 ) | ($Check1 & 0×3F);
- $Check1 = (($Check1 >> 4) & 0×3FFC00 ) | ($Check1 & 0×3FF);
- $Check1 = (($Check1 >> 4) & 0×3C000 ) | ($Check1 & 0×3FFF);
- $T1 = (((($Check1 & 0×3C0) << 4) | ($Check1 & 0×3C)) <<2 ) | ($Check2 & 0xF0F );
- $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0×3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
- return ($T1 | $T2);
- }
- //genearate a checksum for the hash string
- 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;
- }
- //return the pagerank checksum hash
- function getch($url) { return CheckHash(HashURL($url)); }
- //return the pagerank figure
- function getpr($url) {
- global $googlehost,$googleua;
- $pr = 0; // default return
- $ch = getch($url);
- $fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
- if ($fp) {
- $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1rn";
- //echo “
$out n”; //debug only
- $out .= “User-Agent: $googleuarn”;
- $out .= “Host: $googlehostrn”;
- $out .= “Connection: Closernrn”;
- fwrite($fp, $out);
- //$pagerank = substr(fgets($fp, 128), 4); //debug only
- //echo $pagerank; //debug only
- while (!feof($fp)) {
- $data = fgets($fp, 128);
- //echo $data;
- $pos = strpos($data, “Rank_”);
- if($pos === false){} else{
- $pr=substr($data, $pos + 9);
- $pr=trim($pr);
- $pr=str_replace(“n”,”,$pr);
- return $pr;
- }
- }
- //else { echo “$errstr ($errno) n”; } //debug only
- fclose($fp);
- }
- return $pr;
- }
- ?>
复制代码
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31