没事想了一个略贱的功能,在欢迎访客界面上显示对方PR,这个也可以广泛应用在评论者和友链等地方,不过那样就太贱了,所以我决定弄成只对来访者本人显示.
效果大家应该已经看到了,顺便附张图吧
http://toolbarqueries.google.com.hk/tbr?client=navclient-auto&features=Rank&q=info:xiaohudie.net&ch=820909c8a
后面那个ch的值相当于一个key,需要php运算,但是我在本地测试的时候发现和我自己网站运算的结果不同,暂时也不知道是PHP版本问题还是WIN与LINUX的问题,所以把两个运算方法都给出来吧,如果用第一种没有调出正确的PR,换成第二种就可以了.
查询PHP版本的方法如下
<?php echo PHP_VERSION;?>
下面是对访客显示对方网站PR的代码
代码一
这是我自己网站测试通过的,操作系统LINUX,PHP版本5.2.17
<?php
if($_COOKIE["comment_author_url_" . COOKIEHASH]!="") {
function app_hash_url($url) {
$seed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE.";
$hash = 0x01020345;
for ($i=0; $i<strlen($url); $i++) {
$hash ^= ord($seed{$i%87}) ^ ord($url{$i});
$hash = (($hash >> 23) & 0x1FF) | $hash << 9;
}
return sprintf("8%x", $hash);
}
$domain1 = $_COOKIE["comment_author_url_".COOKIEHASH];
$domain=substr($domain1,7);//去掉访客网址前面的http://
,只保留domain
$startUrl = "http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&q=info:";
$hash = substr(app_hash_url($domain),9);//由于我网站运算hash的时候得出的ch值错误,观察发现要从第10位开始截
$resultUrl = $startUrl.$domain."&ch=8".$hash;
$array = get_headers($resultUrl,1);
if(!preg_match('/403/',$array[0])){//这个以前文章提过,用来判断是否可以准确读取页面,通常没有pr的时候调用api会跳403
$pageContent = file_get_contents($resultUrl);
$pageRank = substr($pageContent,9);
echo $pageRank;}else { echo "0";}
}
?>
代码二
这是本地测试通过的代码,操作系统WIN7,PHP版本5.2.14
<?php echo PHP_VERSION;
if($_COOKIE["comment_author_url_" . COOKIEHASH]!="") {
function app_hash_url($url) {
$seed = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE.";
$hash = 0x01020345;
for ($i=0; $i<strlen($url); $i++) {
$hash ^= ord($seed{$i%87}) ^ ord($url{$i});
$hash = (($hash >> 23) & 0x1FF) | $hash << 9;
}
return sprintf("8%x", $hash);//貌似WIN主机直接这么算就可以得出准确的ch值
}
$domain1 = $_COOKIE['comment_author_url_'.COOKIEHASH];
$domain=substr($domain1,7);
$startUrl = "http://toolbarqueries.google.com/tbr?client=navclient-auto&features=Rank&q=info:";
$resultUrl = $startUrl.$domain.'&ch='.app_hash_url($domain);
$array = get_headers($resultUrl,1);
if(!preg_match('/403/',$array[0])){
$pageContent = file_get_contents("$resultUrl");
$pageRank = substr($pageContent,9);
echo $pageRank;
}else{echo '0';}
}
?>
如果想用在其他地方来查询某些网站的PR,改一下$domain
值就行了.写完了,挺累的,你们不能像上两篇那样对我,才三十几条评论,我一颗七窍玲珑心都碎了
pr-api is coded by http://xiaohudie.net. Any posts here is one hundred percent original, so please keep my link so as not to hurt this pretty girl. -
PR3 哈哈哈~ :nono:
- -我的PR是0你给显示出来明显打击我的心情么。。。
@方露宇 只有你自己可以看到,谁打击你了?只是给你时刻关注pr的信息而已。
好吧,pr果断是0 :fue:
显示的我的不对 我的是2 显示的是0 :koubixiu:
:meme: :meme:看看pr
新域名 心开始
心都碎了 :xia: :xia: :xia: :xia: :xia:
怎么还是会跳转首页 – -
@梦月酱 :sui: 不知道….有另外一个人也遇到这个问题 你俩都是火狐 可能跟这个有关系
这个……
好吧PR的根本目的并不是给链接分出三六九等
@敏敏 只是写个功能而已啦