Google
代码如下:
-
/**
- * blog.hd001.com Google PageRank 生成器
- *
- *
- * @link: http://blog.hd001.com
- * @author: Pasio 和 superspice
- * @版本:0.1
- */
-
@错误报告(E_ALL ^ E_NOTICE);
-
定义('GOOGLE_MAGIC', 0xE6359A60) ;
-
//无符号右移
-
函数 zeroFill($a, $b )
- {
-
$z = 十六进制(80000000);
-
if ($z & $a)
- {
-
$a = ($a>>1 );
-
$a &= (~$z);
-
$a |= 0x40000000;
-
$a = ($a>>($b-1));
- }
- 其他
- {
-
$a = ($a>>$b);
- }
-
返回$a;
- }
-
-
-
函数混合($a,$b ,$c) {
-
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
-
$b -= $c; $b -= $a; $b ^= ($a8);
-
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
-
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
-
$b -= $c; $b -= $a; $b ^= ($a16);
-
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
-
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
-
$b -= $c; $b -= $a; $b ^= ($a10);
-
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
-
-
返回数组($a,$b,$c );
- }
-
-
函数 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[$k11]24 ));
-
$mix = 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);
-
案例 10: $c =($url[$k 9]16);
-
案例 9 : $c =($url[$k 8]8);
-
/* c 的第一个字节保留为长度 */
-
案例 8 : $b =($ url[$k 7]24 );
-
案例 7 : $b =($url[$k 6]16);
-
案例 6 : $b =($url[$k 5]8);
-
案例 5 : $b =($url[$k 4]);
-
案例 4 : $a =($url[$k 3]24);
-
案例 3 : $a =($url[$k 2]16);
-
案例 2 : $a =($url[$k 1]8);
-
案例 1 : $a =($url[$k 0]);
-
/* 情况 0:没有什么可添加的 */
-
}
-
$mix = mix($a, $b,$c);
-
/*------------------------------------ --------报告结果*/
-
返回$mix[2];
- }
-
-
//将字符串转换为包含 char 数值的整数数组
-
函数 strord($string) {
-
对于($i=0;$i<strlen($string);$i ) {
- $结果[$i] = ord ($string{$i});
- }
- 返回$结果;
- }
- // http://www.example.com/ - 校验和:6540747202
- if (!isset($_GET['url']))
- {
- $url_o = $_SERVER['HTTP_REFERER'];
- }
- 其他
- {
- $url_o = $_GET['url'];
- }
- $url_o = 爆炸("?" , $url_o);
- $url_o = $url_o[0] ;
- $url = '信息:'.$url_o;
- $ch = GoogleCH(strord($url));
- $url ='info:'.urlencode($url_o);
- $cache_filename = "prcache/".urlencode($url_o).".pagerank";
- //检查缓存文件是否存在,如果不存在则创建
- if(!file_exists($cache_filename) || ( file_exists($cache_filename) && filemtime($cache_filename) <时间() - 86400))
- {
- $url = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=6$ch&ie= UTF-8&oe=UTF-8&features=Rank&q=$url";
- $结果 = @file_get_contents($url );
- $tmp = @爆炸(":", $结果);
- $rank = intval($tmp[ 2]);
- $handle = fopen ($cache_filename, “w”);
- 羊群($handle, LOCK_EX);
- fwrite($handle, $rank) ;
- 羊群($handle, LOCK_UN);
- fclose($handle);
- }
- $pagerank = @file_get_contents($cache_filename );
- $pagerank = 2;
- $width = 6 * $pagerank;
- $width_ = 6 * (10- $pagerank);
- echo "document.writeln('<表格宽度="80" border=0 cellpadding="0" cellspacing="0" style="字体大小:12px">
"居中">PageRank
< ;td><表格宽度="80" cellpadding=" 0" cellspacing="1" bgcolor="#CCCCCC"高度="10" style="字体大小:11px">"#FFFFFF">"62">"/imgs/bar.gif" width="$宽度"高度="20">"/imgs/space.gif"宽度=" $width_"高度="20" > | "中心" style="颜色:红色">$pagerank
< /表>');";
以上代码保存为pagerank.php到plugins目录下。
实现步骤
一、放一个bar.gif到imgs文件夹下,为上面的绿色图片,再放一个space.gif到imgs文件夹下,该图片是一个1*1的空白图。
二、在plugins目录下建立prcache目录,保证并该目录为apache执行用户可读写的。
三、调用方法是:
页面中,在你想要显示pagerank的位置加入如下代码
完毕!