關於PHP在linux下面獲取GOOGLE的PR值

2020-12-04 站長之家

define('GOOGLE_MAGIC', 0xE6359A60);
class pageRank{
var $pr;
function zeroFill($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; $a ^= ($this->zeroFill($c,13));
  $b -= $c; $b -= $a; $b ^= ($a<<8);
  $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,13));
  $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,12));
  $b -= $c; $b -= $a; $b ^= ($a<<16);
  $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,5));
  $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,3));
  $b -= $c; $b -= $a; $b ^= ($a<<10);
  $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,15));
  return array($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC){
  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);
   /* the first byte of c is reserved for the length */
   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);
  /* report the result */
  return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char

function strord($string){
  for($i=0;$i<strlen($string);$i++) {
   $result[$i] = ord($string{$i});
  }
  return $result;
}

function printrank($url){
  $ch = "6".$this->GoogleCH($this->strord("info:" . $url));

  $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
  if(!$fp){
   echo "$errstr ($errno)<br />\n";
  }else{
   $out = "GET /search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ;
   $out .= "Host: www.google.com\r\n" ;
   $out .= "Connection: Close\r\n\r\n" ;
   fwrite($fp, $out);
   while (!feof($fp)) {
   $data = fgets($fp, 128);
   $pos = strpos($data, "Rank_");
    if($pos === false){
    }else{
     $pagerank = substr($data, $pos + 9);
     fclose($fp);
     return array($pagerank,$url);
    }
   }
   fclose($fp);
   return array(0,$url);
  }
}

function printranks($domains){
  foreach($domains as $value){
   $elements[] = $this->printrank($value);
  }
  return $elements;
}
//display pagerank image. Create your own or download images I made for this script. If you make your own make sure to call them pr0.gif, pr1.gif, pr2.gif etc.
function get_pr(){
  return $this->pr;
}
}
$gpr = new pageRank();
var_dump($gpr->printrank("www.chinaz.com"));

相關焦點

  • 關於Google PR 值清零的一些看法
    估計很多站長第一感覺是自己的站是不是被 Google 清除了PR值,當站長們再查詢其它站點,才發現其它站也沒有了 Google PR 值,大家這才發現是谷歌的問題。哪麼今天是什麼原因導致 Google PR 清零呢?估計外面說法也有很多,那麼我也說說我的幾種看法吧!
  • 幾家水行業網站PR值一覽
    根據對谷歌PR值觀測的最新結果,幾個環保網站的PR值分別如下表所示。網站的PR值(全稱為PageRank),是google搜索排名算法中的一個組成部分,級別從1到10級,10級為滿分,PR值越高說明該網頁在搜索排名中的地位越重要,也就是說,在其他條件相同的情況下,PR值高的網站在google搜索結果的排名中有優先權。這是對PR值最基本的解釋。
  • 很準的google PR值在線預測工具推薦
    首頁 > 空間 > 關鍵詞 > SEO最新資訊 > 正文 很準的google PR值在線預測工具推薦
  • Google Chrome for Linux 重大更新
    如果你打算體驗由 Google 官方維護打包的 Google Chrome for Linux ,請在 /etc/apt/sources.list 文件中添加如下一行: sudo gedit /etc/apt/sources.listdeb http://dl.google.com/linux/deb/ stable non-free #google
  • PHP如何獲取一周的第一天
    使用PHP strtotime()函數可以獲取一周的第一天。此函數返回默認時間變量timestamp,然後使用date()函數將時間戳日期轉換為可理解的日期。strtotime()函數: strtotime()函數通過解析時間字符串返回時間戳中的結果。
  • php知識大通關——常見函數功能
    接上節內容,仍然以習題的方式講解php常見函數及功能!php常見函數1、在php中,下面哪個方法使用 PHP 連接 MySQL 資料庫?2、在php中,下面哪個函數用於在 PHP 中獲取環境變量? search() environment() env() getenv()解析:PHP 中提供了一個 getenv() 函數來訪問所有環境變量的值。3、下面哪個異常處理類方法在發生錯誤時檢索錯誤消息?
  • 分享穩定提升PR值的方法
    分享穩定提升PR值的方法 PR值,就是網頁等級的意思,是Google衡量一個頁面的標準。本文介紹的是穩定提升網站PR值的方法,希望對大家有幫助,一起來看。
  • PR更新,中國水網再上一位至7
    這幾天谷歌(google)工具條PR又在更新了。值得慶賀的是,我國水業第一門戶網站中國水網(www.h2o-china.com)的PR值從6上升到7。
  • GOOGLE讓你成為黑客
    google hacking其實並算不上什麼新東西,當時並沒有重視這種技術,認為webshell什麼的,並無太大實際用途.google hacking其實並非如此簡單... google hacking的簡單實現 使用google中的一些語法可以提供給我們更多的信息(當然也提供給那些習慣攻擊的人更多他們所想要的.),下面就來介紹一些常用的語法.
  • 信息安全的隱患 GoogleHacking原理和防範
    前言:2004年在拉斯維加斯舉行的BlackHat大會上,有兩位安全專家分別作了名為You found that on google ? 和google attacks 的主題演講。經過安全焦點論壇原版主WLJ大哥翻譯整理後,個人覺得有必要補充完善一些細節部分。
  • 怎麼理解php中的數組?php的數組創建和使用方法是什麼?
    php數組的定義數組就是值類型相同的變量的集合,在PHP中的一種常用的複合數據類型,數據可以存放很多的數據,可以存儲任何類型的數據。我們可以把變量當做一個包含值得盒子,那麼可以把數組當做當成一個帶有隔層的盒子,每一層都可以存放一個值。
  • 淺談我所發現網站PR值的第三種作用
    網站PR值高可能說明不了任何問題,但PR值過低一定說明網站存在某些方面的嚴重缺陷。網站PR值用於網站結構合理性的分析判斷,是作者發現的網站PR值的第三種作用。引用google工程師Matt Cutts的話,再次說明對google PR值不必過於重視,因為PR值並不是決定網頁在搜尋引擎檢索結果中排名的惟一因素,甚至不是最重要的決定因素。當然這並不是說,網站PR值真的沒有任何意義,在網站優化工作中,我們還可以把網站PR值檢測作為一個測試工具來判斷一個網站的結構是否合理。
  • TP6多應用模式下獲取不到當前控制器和方法名 - php中文網
    前言:最近使用TP6做了一套項目,發現多應用模式下使用 $this->request->controller()和 $this->request->action() 無法獲取到當前的控制器和方法名,自己研究了一下,找了個笨辦法
  • PHP 二進位打包工具 phiwrapper 發布 1.0 版本
    phiwrapper 是一個用於打包胖「二進位」的工具phiwrapper可以通過batsh使得同一文件包含不同平臺的二進位,可以在不同平臺運行:例如,使用phiwrapper打包 Windows 的 PHP PE 二進位和,linux的ELF二進位以及php代碼,在Windows下可以雙擊運行file.bat文件開啟服務,linux下可以用sh .
  • php 中關於時區的那點事
    php 中的日期時間函數庫是 php內置函數庫,我們可以方便地操作時間,設置時區等.正常情況下, date 擴展默認是啟用的,我們可以輸入 phpinfo 列印出 php 的基本信息,然後搜索關鍵字 date 就可以找到關於 date 擴展的相關信息.
  • PHP文件包含漏洞利用思路與Bypass總結手冊(二)
    session.serialize_handler=php伺服器在配置文件或代碼裡面沒有對session進行配置的話,PHP默認的會話處理方式就是session.serialize_handler=php這種模式機制。下面通過一個簡單的用戶會話過程了解session.serialize_handler=php是如何工作的。
  • Php常見問題總結
    2:調試你的程序在運行時必須知道某個變量為何值。我是這樣做的,建立一文件debug.php,其內容如下: <?> 然後在php.ini中設置:include_path = "c:/php",並將debug.php放在此文件夾,以後就可以在每個網頁裡包含此文件,查看得到的變量名和值.
  • PHP 框架 QueryPHP 1.0.3 發布,兼容 PHP 8.0 和 PHP 8.1
    QueryPHP 1.0.3 僅僅做了對 PHP 8.0 和 PHP 8.1 兼容性處理,修復了 PHP 8 下面的代碼和測試用例。
  • php中函數禁用繞過的原理與利用
    false,因為不支持通配符,該方法只能適用於linux下的暴力猜解文件。下面看看在php中如何配合利用達成bypass disable。php中的利用php中主要是需要配合putenv函數,如果該函數被ban了那麼也就沒他什麼事了,所以bypass前需要觀察disable是否ban掉putenv。
  • 中國的站長還是那麼看重PR值嗎?
    谷歌的一席浪潮席捲而來讓中國的很多站長欣喜不已,因為27號晚谷歌進行了PR值大更新。相信絕大多數站長的站pr值都增加了,而且很多不是增加一點,有的網站有0升到了4,還真是給力啊。