• 雪天寒冷 常州120一天多接到急救电话1118个 2018-07-18
  • 怀揣“警察梦” 盗贼专偷警用物品 2018-07-18
  • 创新人才教育研究会选举出第二届理事会理事 2018-07-18
  • 筽箌紈贰蟰贺礶羛甶Fantasia 2018-07-18
  • 三亚开通至保亭陵水3条城际旅游公交线路 20分钟发一班车 2018-07-18
  • 苹果AR新技术或让你生活大爆炸 这些公司已布局(股) 2018-07-18
  • 合众人寿阜阳中支因部分保单客户信息不真实被罚款10万元 2018-07-17
  • 顾客网购电视安装时发现屏裂 因已开箱无法正常退货 2018-07-17
  • 20多年未开口的央视女主播 在政协会上说了什么? 2018-07-17
  • 为什么只有韩国能生产大尺寸OLED?中国不行 2018-07-16
  • “高盐值”真面目 这些食品不咸也高盐 2018-07-16
  • 山西太原:出租车拟调价以应对网约车市场冲击 2018-07-15
  • 默勒镇多措并举全面打响生态环境保护攻坚战 2018-07-15
  • 去年广州专利申请量首破10万件 2018-07-15
  • 冬日浪漫礼遇 圣诞节游戏里“约“起来 2018-07-15
  • PHP获取网站的PR值代码

    栏目: 编程语言 发布于: 2014-04-27 23:14:24

    下面是本人搜集整理的一个利用PHP获取网站的google PR值的代码的方法,特贡献出来分享一下,完整代码如下:

    <?php
    $url='www.phpernote.com';
    define('G_PR_GET_TYPE_FILE', 1);
    define('G_PR_GET_TYPE_SOCKET', 2);
    
    echo getGooglePR($url);//获取http://www.rocksun.cn的PR值
    
    function getGooglePR($_url,$gettype=G_PR_GET_TYPE_SOCKET){
    	$url='info:'.$_url;
    	$ch=GCH(strord($url));
    	$ch=NewGCH($ch);
    	$url=str_replace("_","%5F",'info:'.urlencode($_url));
    	$googlePRUrl="http://www.rocksun.cn/tbr?client=navclient-auto&ch=6".$ch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".$url;
    	$pr_str=retrieveURLContent($googlePRUrl,$gettype);
    	return substr($pr_str,strrpos($pr_str, ":")+1);
    }
    function zeroFill($a, $b){
    	$z=hexdec('8'.implode('',array_fill(0,PHP_INT_SIZE*2-1,'0')));
    	if($z&$a){
    	$a=($a>>1);
    	$a &=(~$z);
    	$a |=hexdec('4'.implode('',array_fill(0,PHP_INT_SIZE*2-1,'0')));
    	$a=($a>>($b-1));
    	}else{
    	$a=($a>>$b);
    	}
    	return $a;
    }
    function trunkbitForce32bit($n){
    	if(PHP_INT_SIZE<=4){
    		settype($n,'float');
    		if($n<0){
    			$n+=4294967296;
    		}
    		return $n;
    	}else{
    		$clearbit='';
    		for($i=0;$i<PHP_INT_SIZE-4;$i++){
    			$clearbit.='00';
    		}
    		for($i=0;$i<4;$i++){
    			$clearbit.='ff';
    		}
    		return ($n&hexdec($clearbit));
    	}
    }
    function bigxor($m,$n){
    	return $m ^ $n;
    }
    function mix($a,$b,$c){
    	$a=trunkbitForce32bit($a);
    	$b=trunkbitForce32bit($b);
    	$c=trunkbitForce32bit($c);
    	$a-=$b;
    	$a=trunkbitForce32bit($a);
    	$a-=$c;
    	$a=trunkbitForce32bit($a);
    	$a=bigxor($a,(zeroFill($c,13)));
    	$a=trunkbitForce32bit($a);
    	$b-=$c;
    	$b=trunkbitForce32bit($b);
    	$b-=$a;
    	$b=trunkbitForce32bit($b);
    	$b=bigxor($b,trunkbitForce32bit($a<<8));
    	$b=trunkbitForce32bit($b);
    	$c-=$a;
    	$c=trunkbitForce32bit($c);
    	$c-=$b;
    	$c=trunkbitForce32bit($c);
    	$c=bigxor($c,(zeroFill($b,13)));
    	$c=trunkbitForce32bit($c);
    	$a-=$b;
    	$a=trunkbitForce32bit($a);
    	$a-=$c;
    	$a=trunkbitForce32bit($a);
    	$a=bigxor($a,(zeroFill($c,12)));
    	$a=trunkbitForce32bit($a);
    	$b-=$c;
    	$b=trunkbitForce32bit($b);
    	$b-=$a;
    	$b=trunkbitForce32bit($b);
    	$b=bigxor($b,trunkbitForce32bit($a<<16));
    	$c-=$a;
    	$c=trunkbitForce32bit($c);
    	$c-=$b;
    	$c=trunkbitForce32bit($c);
    	$c=bigxor($c,(zeroFill($b,5)));
    	$c=trunkbitForce32bit($c);
    	$a-=$b;
    	$a=trunkbitForce32bit($a);
    	$a-=$c;
    	$a=trunkbitForce32bit($a);
    	$a=bigxor($a,(zeroFill($c,3)));
    	$a=trunkbitForce32bit($a);
    	$b-=$c;
    	$b=trunkbitForce32bit($b);
    	$b-=$a;
    	$b=trunkbitForce32bit($b);
    	$b=bigxor($b,trunkbitForce32bit($a<<10));
    	$c-=$a;
    	$c=trunkbitForce32bit($c);
    	$c-=$b;
    	$c=trunkbitForce32bit($c);
    	$c=bigxor($c,(zeroFill($b,15)));
    	$c=trunkbitForce32bit($c);
    	return array($a,$b,$c);
    }
    function NewGCH($ch){
    	$ch=(trunkbitForce32bit(($ch/7 )<<2)|((myfmod($ch,13))&7));
    	$prbuf=array();
    	$prbuf[0]=$ch;
    	for($i=1;$i<20;$i++){
    		$prbuf[$i]=$prbuf[$i-1] - 9;
    	}
    	$ch=GCH(c32to8bit($prbuf));
    	return $ch;
    }
    function myfmod($x,$y){
    	$i=floor($x/$y );
    	return ($x - $i * $y );
    }
    function c32to8bit($arr32){
    	$arr8=array();
    	for($i=0;$i<count($arr32);$i++){
    		for($bitOrder=$i * 4;$bitOrder<=$i * 4 + 3;$bitOrder++){
    			$arr8[$bitOrder]=$arr32[$i]&255;
    			$arr32[$i]=zeroFill($arr32[$i], 8 );
    		}
    	}
    	return $arr8;
    }
    function GCH($url, $length=null){
    	if(is_null($length)){
    		$length=sizeof($url);
    	}
    	$init=0xE6359A60;
    	$a=0x9E3779B9;
    	$b=0x9E3779B9;
    	$c=0xE6359A60;
    	$k=0;
    	$len=$length;
    	$mixo=array();
    	while($len >=12){
    		$a+=($url[$k+0] +trunkbitForce32bit($url[$k+1]<<8)+trunkbitForce32bit($url[$k+2]<<16)+trunkbitForce32bit($url[$k+3]<<24));
    		$b+=($url[$k+4] +trunkbitForce32bit($url[$k+5]<<8)
    		+trunkbitForce32bit($url[$k+6]<<16)
    		+trunkbitForce32bit($url[$k+7]<<24));
    		$c+=($url[$k+8] +trunkbitForce32bit($url[$k+9]<<8)
    		+trunkbitForce32bit($url[$k+10]<<16)
    		+trunkbitForce32bit($url[$k+11]<<24));
    		$mixo=mix($a,$b,$c);
    		$a=$mixo[0];$b=$mixo[1];$c=$mixo[2];
    		$k+=12;
    		$len-=12;
    	}
    	$c+=$length;
    	switch($len){
    	case 11:
    	$c+=trunkbitForce32bit($url[$k+10]<<24);
    	case 10:
    	$c+=trunkbitForce32bit($url[$k+9]<<16);
    	case 9 :
    	$c+=trunkbitForce32bit($url[$k+8]<<8);
    	case 8 :
    	$b+=trunkbitForce32bit($url[$k+7]<<24);
    	case 7 :
    	$b+=trunkbitForce32bit($url[$k+6]<<16);
    	case 6 :
    	$b+=trunkbitForce32bit($url[$k+5]<<8);
    	case 5 :
    	$b+=trunkbitForce32bit($url[$k+4]);
    	case 4 :
    	$a+=trunkbitForce32bit($url[$k+3]<<24);
    	case 3 :
    	$a+=trunkbitForce32bit($url[$k+2]<<16);
    	case 2 :
    	$a+=trunkbitForce32bit($url[$k+1]<<8);
    	case 1 :
    	$a+=trunkbitForce32bit($url[$k+0]);
    	}
    	$mixo=mix($a, $b, $c );
    	$mixo[2]=trunkbitForce32bit($mixo[2]);
    	if($mixo[2]<0){
    	return (hexdec('1'.implode('',array_fill(0,PHP_INT_SIZE*2,'0'))) + $mixo[2] );
    	}else{
    	return $mixo[2];
    	}
    }
    function strord($string){
    	for($i=0;$i<strlen($string);$i++){
    		$result[$i]=ord($string{$i});
    	}
    	return $result;
    }
    function retrieveURLContent($url,$gettype){
    	switch($gettype){
    		case G_PR_GET_TYPE_FILE:
    			return retrieveURLContentByFile($url);
    		break;
    		default:
    			return retrieveURLContentBySocket($url);
    		break;
    	}
    }
    function retrieveURLContentByFile($url){
    	$fd=@fopen($url,"r");
    	if(!$fd){
    		return false;
    	}
    	$result="";
    	while($buffer=fgets($fd, 4096)){
    		$result.=$buffer;
    	}
    	fclose($fd);
    	return $result;
    }
    function retrieveURLContentBySocket($url,$host="",$port=80,$timeout=30){
    	if($host ==""){
    		if(!($pos=strpos($url,'://'))){return false;}
    		$host=substr($url,
    		$pos+3,
    		strpos($url,'/',$pos+3) - $pos - 3);
    		$uri=substr($url,strpos($url,'/',$pos+3));
    	}else{
    		$uri=$url;
    	}
    	$request="GET ".$uri." HTTP/1.0\r\n"."Host: ".$host."\r\n"."Accept: */*\r\n"."User-Agent: ZealGet\r\n"."\r\n";
    	$sHnd=@fsockopen ($host, $port, $errno, $errstr, $timeout);
    	if(!$sHnd){
    		return false;
    	}
    	@fputs($sHnd, $request);
    	$result='';
    	while (!feof($sHnd)){
    		$result.=fgets($sHnd,4096);
    	}
    	fclose($sHnd);
    	$headerend=strpos($result,"\r\n\r\n");
    	if(is_bool($headerend)){
    		return $result;
    	}else{
    		return substr($result,$headerend+4);
    	}
    }
    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:PHP获取网站的PR值代码
    IT技术书籍推荐:
    GitHub入门与实践
    GitHub入门与实践
    大塚弘记 (作者), 支鹏浩 (译者), 刘斌 (译者)
    《GitHub入门与实践》从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作,使用GitHub的开发流程以及如何将GitHub引入到企业中。在讲解GitHub的代表功能Pull Request时,本书专门搭建了供各位读者实践的仓库,邀请各位读者进行Pull Request并共同维护。 《GitHub入门与实践》旨在指导各位读者如何在开发现场使用GitHub进行高效开发,适合所有想要使用GitHub进行开发的程序员或团队阅读。