代码如下:
- <?php
-
/**
-
* blog.hd001.com Google PageRank Generator
-
*
-
*
-
* @link:????http://blog.hd001.com
-
* @author:??Pasio & superspice <superspice at yeah dot net>
-
* @version: 0.1
-
*/
-
-
@error_reporting(E_ALL ^ E_NOTICE);
-
-
define('GOOGLE_MAGIC',0xE6359A60);
-
-
//unsigned shift right
-
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 ^= (zeroFill($c,13));???
-
??$b -= $c; $b -= $a; $b ^= ($a<<8);???
-
??$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
-
??$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
-
??$b -= $c; $b -= $a; $b ^= ($a<<16);
-
??$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));???
-
??$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));????
-
??$b -= $c; $b -= $a; $b ^= ($a<<10);???
-
??$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
-
????
-
??return array($a,$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 = mix($a,$c);
-
????????$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
-
????????$k += 12;???
-
????????$len -= 12;
-
????}
-
???
-
????$c += $length;
-
????switch($len)??????????????/* all the case statements fall through */
-
????{
-
????????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]);
-
?????????/* case 0: nothing left to add */
-
????}
-
????$mix = mix($a,$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;
-
}
-
// http://www.example.com/ - Checksum: 6540747202
-
-
if (!isset($_GET['url']))
-
{
-
????$url_o???= $_SERVER['HTTP_REFERER'];
-
}
-
else
-
{
-
????$url_o???= $_GET['url'];
-
}
-
-
$url_o = explode("?",$url_o);
-
$url_o = $url_o[0];
-
-
$url????= 'info:'.$url_o;
-
$ch?????= GoogleCH(strord($url));
-
$url????='info:'.urlencode($url_o);
-
$cache_filename = "prcache/".urlencode($url_o).".pagerank";
-
// check exists of cache file,if not exists,create it
-
if(!file_exists($cache_filename) || (file_exists($cache_filename) && filemtime($cache_filename) < time() - 86400))
-
{
-
????$url????= "http://toolbarqueries.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url";
-
????$result = @file_get_contents($url);
-
????$tmp????= @explode(":",$result);
-
????$rank???= intval($tmp[2]);
-
????$handle = fopen ($cache_filename,"w");
-
????flock($handle,LOCK_EX);
-
????fwrite($handle,$rank);
-
????flock($handle,LOCK_UN);
-
????fclose($handle);
-
}
-
$pagerank = @file_get_contents($cache_filename);
-
$pagerank = 2;
-
$width = 6 * $pagerank;
-
$width_ = 6 * (10-$pagerank);
-
echo "document.writeln('<table width=""80"" border=0 cellpadding=""0"" cellspacing=""0"" style=""font-size:12px""><tr><td align=""center"">PageRank</td></tr><tr><td><table width=""80"" cellpadding=""0"" cellspacing=""1"" bgcolor=""#CCCCCC"" height=""10"" style=""font-size:11px""><tr bgcolor=""#FFFFFF""><td width=""62""><img src=""/imgs/bar.gif"" width=""$width"" height=""20""><img src=""/imgs/space.gif"" width=""$width_"" height=""20""></td><td align=""center"" style=""color:red"">$pagerank</td></tr></table></td></tr></table>');";
以上代码保存为pagerank.php到plugins目录下。 实现步骤 一、放一个bar.gif到imgs文件夹下,为上图中的绿色图片,再放一个space.gif到imgs文件夹下,该图片是一个1*1的空白图。 二、在plugins目录下建立prcache目录,并保证该目录为apache执行用户可读写的。 三、调用方法是: 页面中,在你想要显示pagerank的地方加入如下代码 <script language="javascript" src="plugins/pagerank.php"></script> 完毕! (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|