学习网考试学习资料

Gzu521.com

页面中嵌入google的pagerank显示

PHP教程   点击:次   发布时间:2005-7-29   【字体: 】   来源:
Gzu521.com我的学习网
pagerank$pagerank
代码如下:

/** 
* blog.hd001.com google pagerank generator 


* @link:    http://blog.hd001.com ;
* @author:  pasio & superspice  
* @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,$b,$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,$b,$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,$b,$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         $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(’
’);"; 
以上代码保存为pagerank.php到plugins目录下。
实现步骤
一、放一个bar.gif到imgs文件夹下,为上图中的绿色图片,再放一个space.gif到imgs文件夹下,该图片是一个1*1的空白图。
二、在plugins目录下建立prcache目录,并保证该目录为Apache执行用户可读写的。
三、调用方法是:
页面中,在你想要显示pagerank的地方加入如下代码
&#106avascript" src="plugins/pagerank.php">
完毕!

责任编辑:gzu521

网络编程分类
ASP教程
.Net教程
Java教程
PHP教程
数据库基础
ACCESS教程
SQL Server教程
MySQL教程
Oracle教程
分类推荐信息
更多...
大类最新文章
更多...