说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

PHP获取Google PR值

HTML文档下载 WORD文档下载 PDF文档下载
这是获取Google PR值的PHP实现版本,经过测试运行正常。

下载源代码

 

这是获取Google PR值的PHP实现版本,经过测试运行正常。将下面代码保存为googlepr.php则读取www.okbase.net网站的PR值调用格式为:

googlepr.php?url=www.okbase.net

 

代码如下:

 

<?php//PageRank Lookup v1.1 by HM2K (update: 31/01/07)//based on an alogoritham found here: http://pagerank.gamesaga.net///settings - host and user agent$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';//字符串转换到32位整数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;}//将URL进行哈希编码function HashURL($String) {    $Check1 = StrToNum($String, 0x1505, 0x21);    $Check2 = 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);}//为哈希字符串生成校验码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;}//返回pagerank哈希校验码function getch($url) { return CheckHash(HashURL($url)); }//返回PR值function getpr($url) {	global $googlehost,$googleua;	$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.1\r\n";	   //echo "<pre>$out</pre>\n"; //debug only	   $out .= "User-Agent: $googleua\r\n";	   $out .= "Host: $googlehost\r\n";	   $out .= "Connection: Close\r\n\r\n";		   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)<br />\n"; } //debug only	   fclose($fp);	}}//生成pagerank图形function pagerank($url,$width=40,$method='style') {	if (!preg_match('/^(http:\/\/)?([^\/]+)/i', $url)) { $url='http://'.$url; }	$pr=getpr($url);	$pagerank="PageRank: $pr/10";	//The (old) image method	if ($method == 'image') {	$prpos=$width*$pr/10;	$prneg=$width-$prpos;	$html='<img src="http://www.google.com/images/pos.gif" width='.$prpos.' height=4 border=0 alt="'.$pagerank.'"><img src="http://www.google.com/images/neg.gif" width='.$prneg.' height=4 border=0 alt="'.$pagerank.'">';	}	//The pre-styled method	if ($method == 'style') {	$prpercent=100*$pr/10;	$html='<div style="position: relative; width: '.$width.'px; padding: 0; background: #D9D9D9;"><strong style="width: '.$prpercent.'%; display: block; position: relative; background: #5EAA5E; text-align: center; color: #333; height: 4px; line-height: 4px;"><span></span></strong></div>';	}		$out='<a href="'.$url.'" title="'.$pagerank.'">'.$html.'</a>';	return $out;}if ((!isset($_POST['url'])) && (!isset($_GET['url']))) { echo '<form action="" method="post"><input name="url" type="text"><input type="submit" name="Submit" value="Get Pagerank"></form>'; }if (isset($_REQUEST['url'])) { echo pagerank($_REQUEST['url']); }?>

 

 

PTVS 2.1 Beta版发布 Visual Studio的Python工具 【走近院士】李兰娟:云计算与大数据将成为医疗改革利器 迭代不等于学习,聚类分析也不等于机器学习 Office大肆杀戮,已攻下Chrome Web Store Bug都补好了?Google发布Android 4.4.3更新 微软被传收购Xamarin 强势推进移动新战略 挑战传统金融业务 Facebook进军移动支付领域 亚马逊AWS需解决的五项问题 腾讯自曝:大数据平台的秘密 继Cloudera之后,MapR宣布对Spark的完全支持 企业实施商务智能的6个致命错误 《近匠》HBuilder:如何用JS调用几十万原生API? littleBits新推Cloud Module,普通人也能DIY智能硬件 如何创建浮动式标签模式? Office 365正式落地中国——移动为先,云为先 .NET Native:C++的性能 C#的产能? Arduino联合创始人Tom Igoe:创客,因何而创 【走近院士】高文:多媒体大数据的影响及面临的挑战 微软SQL Server 2014三大新特性:集成内存OLTP、BI和混合云搭建 Linux将会统治桌面端的7个原因 Intel首席科学家Randolph Wang:详解Edison AMD Mantle再添新作,引发下代GPU架构猜想 谈DAM决策,自建还是SaaS 证据显示:Linux战争已经转移到OpenStack RestKit:iOS开发必备,告别众多无聊代码 技术新突破:手机和平板可远程控制PC,Chrome Remote Desktop亮相 物联网高速公路上,快数据如何驱动分析 苹果或将使用雅虎的搜索引擎,抛弃谷歌 百万用户规模的系统如何扩展 大数据需要软件定义存储 倒计36小时!2014中国Spark技术峰会即将召开! 高手快进!小弟有一事不明!!告急! 取ADO的recordset对象的recordcount属性总是 -1,如何解决? 这样的网络游戏一个值多少钱?请报价。 软件发布:《加密樵夫》 软件发布:《加密樵夫》 谁有Dreamweaver4.0的注册码,我晕,555555555…~~~~~~~~~ 我曾在本论坛看到一篇“用纯ASP代码实现图片上传并存入数据库中”的文章,可是怎样实现一个页面上传多幅图片呢,高手能否帮忙看一下? 如何检测一个超链接是不是死链接 软件发布:加密专家系统 只要点一下,妹妹我就以身相许 谁有Dreamweaver4.0的注册码,我晕,555555555…~~~~~~~~~11 请问只要是线程就有消息队列,还是此线程产生window后才有消息队列?在控制台程序中,在消息循环中,当受到一wm_timer消息时,此消息将发送给那一window procedure? 软件发布:三维几何画板 CSDN有徐州的朋友吗 请教高手一个关于图像格式的问题 高手清帮忙:如何获得一个控件的电子签名认证?急,急,急! 觅有时间有经验用MAPINFO开发GIS的高手? IE 能不能同时浏览2种以上不同设置的网页? 初级asp问题 询问-----上海在哪里有软件考试报名? 怎样用SDK的方法改变文本框的前景色和背景色?(内空) 能推荐几个有关COM、ActiveX技术的网站吗?每个10分不够再加。 请问ljhua,ASP网页怎样调用*.bat文件,是服务器上的还是客户机上的bat? ****************** 先散掉点分,省得走的时候累赘 ****************** UNICODE和WinMain 一个空战游戏,附源程序! 创建WebSnap应用程序(一) 请教一个http错误号 vs.net安装(2) 请教高手,怎样使用信使服务向局域网内的其他用户发通知? 使用过DeviceIoControl的高手请进: 不知用过jbuilder5的朋友有何感想 如何用程序中断拔号连接? DLL调用 搞什么鬼?不给超过三次? ADOTable如何查询数据? 软件发布:小精灵 vcguy,come on! 我在用resin做标签库时遇到问题,请大家帮忙。 没有源代码的情况下,由*.DLL该如何生成相应的*.LIB文件? 那位先生对 Oracle Spatial比较感兴趣~~~~~~~~~~~~ 如何在电子邮件中加入JAVA语句,重谢!!! 我不知道~ 竟猜: 成精的狐狸不是狐狸mm就是狐狸jj。那HolyFire 是狐狸jj还是狐狸mm呢?? 软件发布:图标精灵 请问在网上怎样发传真! 为何我的表只能做一页 怎样从显示名称获得它的PItemIDList ********如何在窗体中动态的创建组建?********来者有分 笔记本电脑和台式机怎样连起来传输文件! 很菜的问题,请各位指教谢谢! 在括号里填上符合条件的最小自然数( )÷( )=19······6 将1-12分别填入图中的12个小方格内,使得每条边上的四个数的和相等,这个和最大是多少? 把19分成若干个自然数的和,如何分才能使他们的乘积最大 8[ ]8[ ]8[ ]8=2括号里填多少 将-8,-6,-4,-2,0,2,4,6,8这9个数分别填入图中9个方格中,使得每行3个数,每列3个数 把19分成n个自然数的和,怎样分才能使它的乘积最大. ( )+( )=( )( )-()=( )( ) 把这几个数字填到括号里去 任意画出由九个数组成的方框,设中间一个数为x,这九个数的和y,试用含x的代数式表示y 1.把19分成几个自然数的和,要使这些数的乘积最大,应该怎么分?最大的乘积是多少?2.甲、乙、丙三乡各出等量的钱,购买若干辆汽车,买好后,由于丙乡需要量少,结果丙乡比甲、乙两乡各少要15辆 在括号内填上合适的数字(不能重复)1/( )+1/( )+1/( )+1/( )+1/( )+1/( )+1/( )+1/( )=1 如图是某月的月历,用正方形圈出九个数,设最中间一个是x,则用x表示这9个数的和是? 把19分成若干个自然数的和,如何分才能使自然数的乘积最大?最大值是多少?要算式解. 一道数学题2()-()2=()7括号里的数该填几 从月历中框出3*3九个日期,他们的和有怎样的规律?将方框向左向上移动一格,这九个数的和会发生什么变化. 把19分成几个自然数的和,这些加数的连乘积最大是? 1/5=1/()+1/()【括号里填不同的数】 如图,机械手要将一个工件从图中A处移动到B处,但是这个工件不能碰到图中的障碍(不包括坐标轴),试用坐标写出一条机械手在移动中可能走的路程 已知四个互不相等的整数的乘积等于9,这四个数的和是? 4 4 4 4=16 顺序不变,中间要填什么符号才能等于16 设在排成每行7天的月历表中某数是a,那么它下方第1个数是几?用代数式表示.这是几次多项式? 已只4个互不相等的整数的乘积等于9这4个的和是几快 9 7 21 5 8 14 ( ) ,问:括号里填什么? 设在排成每行7天的月历表中某个数是a,那么它下方第一个数是几?用代数式表示,这是几次多项式? 一个整数和一个小数的乘积等于它们的和,求这两个数. 把1,2,3,4,5,6,7,8,9分别填空在正方形的方格 某月的月历上连续三天的日期之和不可能是( ) a.18 b.78 c.65 d.9 如何证明两个数的乘积等于最大公因数与最小公倍数的乘积 把2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 3.1分别填在9个格子里,使横竖斜行都得8.1 你能否用方框在如图的月历中圈出9个数,使这9个数之和为171?如能,请说明理由;如不能,在下一个月的月在下一个月的月历中能否圈出?为什么? 有三个正整数一个比一个大1,三个数的乘积是210,求三个数 把0、1、2、3、4、5、6、7、8、9分别填在方框里怎样填? 口+口=口+口=口+口=口+口=口+口 在2008年12月的月历上能框出和是80的9个数吗?能框出和是180的9个数吗? 如果3个连续的正整数的乘积是210,那么这3个数分别是多少? 1、将九个连续自然数填入3*3的方格内,使得每行、每列以及每条对角线上的三个数的和都等于66.2、将图中的数重新排列,使得每行、每列以及每条对角线上的三个数的和都相等.(22 )(30 ) 2008年12月份的月历卡,一共可以框出几个不同的和?长方形的长是3,宽也是3!(每次都要框9个数) 三个连续正整数,他们的乘积是336,求这三个数. 在九个方格中填入-8、-6、-4、-2、0、2、4、6、8使每行,每列,每条对角线上的三个数等于零 在2008年12月的月历上能框出和是80的9个数吗?要方法! 三个连续的正整数,如果后两个数的乘积的差为114,求这三个数的和 括号里填什么41、 28 、 27 、 83、( )、65A、36B、30C、45D、54 将数字1,4,5,6,7,8,9分别填入如图的方格中,要求每个格子中的数字都比它左边格子中的数字和上边格子中的数字大,问:共有几种填法 将0.3;0.6;0.9;1.2;1.5;1.8;2.1;2.4;2.7九个数填在方格中,使各行个列及对角线上的三个数的和均相等 1/12=1/() 1/()括号里填什么自然数 1、2、3、4、5、6中选出四个数字,填入方格里,使得右边的数比左边的大,下面的比上面的大,几种填法?图是“田”字图 将0.3 0.6 0.9 1.2 1.8 2.1 2.4 2.7九个数填在下面的方格里,是各行各列及对角上的三个数的和均相等. 1/12=1/()+1/() 括号里要填不同的自然数 从1、2、3、4、5中选出四个数字,填入下图的方格里,使得右边的数比左边的大,下面的数比上面的数大,一共有多少种不同的填法一个3列2行的表格,最右边的一列上行是6下行是7 把-7,-5,-3,-1,1,3,5,7,9这九个数填在九个方格内使每横的三个数每竖的三个数以及对角线上的三个数的和相等 三个连续自然数的和是27,这三个数的最小公倍数是( ). 九个方格,第一行左边一个数是3,第二行左边一个数是6右边一个数是2,在其他空格中填上什么数字才能让...九个方格,第一行左边一个数是3,第二行左边一个数是6右边一个数是2,在其他空格中填 把2,3,4,5,6,7,8,9,10这九个数填到九个方格中,使每行每列,以及对角线上的各数之和都相等 七个连续的自然数 最大的两个数的和比最小的数大1998 那么中间的那个数是?要用方程和等差数列来解 从1,2,3,4,5中选出四个数,填入图中的方格内,使得右面的数比左边的数大,下面的数比上面的数大,那么有多少种填法,写出算式.图片为长方形分成四个填数… 0.1.2.3.4.5.6.7.8.9这一组数字当中,分别填到方框里(每个数只能用一次),使三个算式成立(至少写两个答 已知:2^a·27^b·37^c=1998其中a.b.c为自然数,求(a-b-c)^1998的值 把-1、+2、-3、+4、-5、+6、-7、+8、-9填入图所示的的方框内(3×3),使得每行每列每一条对角线上的三个数都满足:1.三个数乘积都是负数 2.三个数绝对值得和都相等. 将0、1、2、3、4、5、6这七个数字分别填入下面算式的方框内,每个方框内只许填一个数字,使算式成立( )x( )=( )( )=( )( )除( ) 七个连续自然数的和,最大的两个数的和比最小的数大1998那么中间的那个数的和是多少?要求出中间那个数算式怎么列? 如图,在另两个方框内各填入一个数,使前两个数之和比后两个数之和小5,且三个数之和为0-3 ( )( ) 用0.1.2.3.4.5.6.7.8.9这10个数添在方框里,试下面的3个算式成立□+□〓□□―□〓□□□÷□〓□
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn