Home Backend Development PHP Tutorial 页面中嵌入google的pagerank显示_PHP

页面中嵌入google的pagerank显示_PHP

Jun 01, 2016 pm 12:34 PM
case mix url show page

Google

代码如下:

  1. /**
  2. * blog.hd001.com Google PageRank Generator
  3. *
  4. *
  5. * @link:    http://blog.hd001.com
  6. * @author:  Pasio & superspice
  7. * @version: 0.1
  8. */
  9. @error_reporting(E_ALL ^ E_NOTICE);
  10. define('GOOGLE_MAGIC', 0xE6359A60);
  11. //unsigned shift right
  12. function zeroFill($a, $b)
  13. {
  14.     $z = hexdec(80000000);
  15.         if ($z & $a)
  16.         {
  17.             $a = ($a>>1);
  18.             $a &= (~$z);
  19.             $a |= 0x40000000;
  20.             $a = ($a>>($b-1));
  21.         }
  22.         else
  23.         {
  24.             $a = ($a>>$b);
  25.         }
  26.         return $a;
  27. }   
  28.    
  29.    
  30. function mix($a,$b,$c) {
  31.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));   
  32.   $b -= $c; $b -= $a; $b ^= ($a8);   
  33.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  34.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  35.   $b -= $c; $b -= $a; $b ^= ($a16);
  36.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));   
  37.   $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));    
  38.   $b -= $c; $b -= $a; $b ^= ($a10);   
  39.   $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  40.     
  41.   return array($a,$b,$c);
  42. }
  43.    
  44. function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
  45.     if(is_null($length)) {
  46.         $length = sizeof($url);
  47.     }
  48.     $a = $b = 0x9E3779B9;
  49.     $c = $init;
  50.     $k = 0;
  51.     $len = $length;
  52.     while($len >= 12) {
  53.         $a += ($url[$k+0] +($url[$k+1]8) +($url[$k+2]16) +($url[$k+3]24));
  54.         $b += ($url[$k+4] +($url[$k+5]8) +($url[$k+6]16) +($url[$k+7]24));
  55.         $c += ($url[$k+8] +($url[$k+9]8) +($url[$k+10]16)+($url[$k+11]24));
  56.         $mix = mix($a,$b,$c);
  57.         $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
  58.         $k += 12;   
  59.         $len -= 12;
  60.     }
  61.    
  62.     $c += $length;
  63.     switch($len)              /* all the case statements fall through */
  64.     {
  65.         case 11: $c+=($url[$k+10]24);
  66.         case 10: $c+=($url[$k+9]16);
  67.         case 9 : $c+=($url[$k+8]8);
  68.           /* the first byte of c is reserved for the length */
  69.         case 8 : $b+=($url[$k+7]24);
  70.         case 7 : $b+=($url[$k+6]16);
  71.         case 6 : $b+=($url[$k+5]8);
  72.         case 5 : $b+=($url[$k+4]);
  73.         case 4 : $a+=($url[$k+3]24);
  74.         case 3 : $a+=($url[$k+2]16);
  75.         case 2 : $a+=($url[$k+1]8);
  76.         case 1 : $a+=($url[$k+0]);
  77.          /* case 0: nothing left to add */
  78.     }
  79.     $mix = mix($a,$b,$c);
  80.     /*-------------------------------------------- report the result */
  81.     return $mix[2];
  82. }
  83.    
  84. //converts a string into an array of integers containing the numeric value of the char
  85. function strord($string) {
  86.     for($i=0;$istrlen($string);$i++) {
  87.         $result[$i] = ord($string{$i});
  88.     }
  89.     return $result;
  90. }
  91. // http://www.example.com/ - Checksum: 6540747202
  92. if (!isset($_GET['url']))
  93. {
  94.     $url_o   = $_SERVER['HTTP_REFERER'];
  95. }
  96. else
  97. {
  98.     $url_o   = $_GET['url'];
  99. }
  100. $url_o = explode("?", $url_o);
  101. $url_o = $url_o[0];
  102. $url    = 'info:'.$url_o;
  103. $ch     = GoogleCH(strord($url));
  104. $url    ='info:'.urlencode($url_o);
  105. $cache_filename = "prcache/".urlencode($url_o).".pagerank";
  106. // check exists of cache file, if not exists, create it
  107. if(!file_exists($cache_filename) || (file_exists($cache_filename) && filemtime($cache_filename) time() - 86400))
  108. {
  109.     $url    = "http://toolbarqueries.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url";
  110.     $result = @file_get_contents($url);
  111.     $tmp    = @explode(":", $result);
  112.     $rank   = intval($tmp[2]);
  113.     $handle = fopen ($cache_filename, "w");
  114.     flock($handle, LOCK_EX);
  115.     fwrite($handle, $rank);
  116.     flock($handle, LOCK_UN);
  117.     fclose($handle);
  118. }
  119. $pagerank = @file_get_contents($cache_filename);
  120. $pagerank = 2;
  121. $width = 6 * $pagerank;
  122. $width_ = 6 * (10-$pagerank);
  123. echo "document.writeln('\"80\" border=0 cellpadding=\"0\" cellspacing=\"0\" style=\"font-size:12px\">
    \"center\">PageRank
    \"80\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\" height=\"10\" style=\"font-size:11px\">\"#FFFFFF\">
    \"62\">页面中嵌入google的pagerank显示_PHP\"/imgs/bar.gif\" width=\"$width\" height=\"20\">页面中嵌入google的pagerank显示_PHP\"/imgs/space.gif\" width=\"$width_\" height=\"20\"> \"center\" style=\"color:red\">$pagerank
    ');"
    ;

以上代码保存为pagerank.php到plugins目录下。
实现步骤
一、放一个bar.gif到imgs文件夹下,为上图中的绿色图片,再放一个space.gif到imgs文件夹下,该图片是一个1*1的空白图。
二、在plugins目录下建立prcache目录,并保证该目录为apache执行用户可读写的。
三、调用方法是:
页面中,在你想要显示pagerank的地方加入如下代码

完毕!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1266
29
C# Tutorial
1239
24
How to copy a page in Word How to copy a page in Word Feb 20, 2024 am 10:09 AM

Want to copy a page in Microsoft Word and keep the formatting intact? This is a smart idea because duplicating pages in Word can be a useful time-saving technique when you want to create multiple copies of a specific document layout or format. This guide will walk you through the step-by-step process of copying pages in Word, whether you are creating a template or copying a specific page in a document. These simple instructions are designed to help you easily recreate your page without having to start from scratch. Why copy pages in Microsoft Word? There are several reasons why copying pages in Word is very beneficial: When you have a document with a specific layout or format that you want to copy. Unlike recreating the entire page from scratch

Why NameResolutionError(self.host, self, e) from e and how to solve it Why NameResolutionError(self.host, self, e) from e and how to solve it Mar 01, 2024 pm 01:20 PM

The reason for the error is NameResolutionError(self.host,self,e)frome, which is an exception type in the urllib3 library. The reason for this error is that DNS resolution failed, that is, the host name or IP address attempted to be resolved cannot be found. This may be caused by the entered URL address being incorrect or the DNS server being temporarily unavailable. How to solve this error There may be several ways to solve this error: Check whether the entered URL address is correct and make sure it is accessible Make sure the DNS server is available, you can try using the "ping" command on the command line to test whether the DNS server is available Try accessing the website using the IP address instead of the hostname if behind a proxy

What is the difference between html and url What is the difference between html and url Mar 06, 2024 pm 03:06 PM

Differences: 1. Different definitions, url is a uniform resource locator, and html is a hypertext markup language; 2. There can be many urls in an html, but only one html page can exist in a url; 3. html refers to is a web page, and url refers to the website address.

Reasons and solutions for desktop layout being locked Reasons and solutions for desktop layout being locked Feb 19, 2024 pm 06:08 PM

What happens when the desktop layout is locked? When using the computer, sometimes we may encounter the situation where the desktop layout is locked. This problem means that we cannot freely adjust the position of desktop icons or change the desktop background. So, what exactly is going on when it says that the desktop layout is locked? 1. Understand the desktop layout and locking functions. First, we need to understand the two concepts of desktop layout and desktop locking. Desktop layout refers to the arrangement of various elements on the desktop, including shortcuts, folders, widgets, etc. we can be free

How to quickly refresh a web page? How to quickly refresh a web page? Feb 18, 2024 pm 01:14 PM

Page refresh is very common in our daily network use. When we visit a web page, we sometimes encounter some problems, such as the web page not loading or displaying abnormally, etc. At this time, we usually choose to refresh the page to solve the problem, so how to refresh the page quickly? Let’s discuss the shortcut keys for page refresh. The page refresh shortcut key is a method to quickly refresh the current web page through keyboard operations. In different operating systems and browsers, the shortcut keys for page refresh may be different. Below we use the common W

How to deal with the problem that Laravel page cannot display CSS correctly How to deal with the problem that Laravel page cannot display CSS correctly Mar 10, 2024 am 11:33 AM

"Methods to handle Laravel pages that cannot display CSS correctly, need specific code examples" When using the Laravel framework to develop web applications, sometimes you will encounter the problem that the page cannot display CSS styles correctly, which may cause the page to render abnormal styles. Affect user experience. This article will introduce some methods to deal with the failure of Laravel pages to display CSS correctly, and provide specific code examples to help developers solve this common problem. 1. Check the file path. First check the path of the CSS file.

How to implement page jump in 3 seconds: PHP Programming Guide How to implement page jump in 3 seconds: PHP Programming Guide Mar 25, 2024 am 10:42 AM

Title: Implementation method of page jump in 3 seconds: PHP Programming Guide In web development, page jump is a common operation. Generally, we use meta tags in HTML or JavaScript methods to jump to pages. However, in some specific cases, we need to perform page jumps on the server side. This article will introduce how to use PHP programming to implement a function that automatically jumps to a specified page within 3 seconds, and will also give specific code examples. The basic principle of page jump using PHP. PHP is a kind of

How to Rearrange, Disable, and Delete iPhone Home Screen Pages How to Rearrange, Disable, and Delete iPhone Home Screen Pages Nov 29, 2023 am 08:22 AM

In iOS, Apple allows you to disable individual home screen pages on your iPhone. It's also possible to rearrange the order of home screen pages and delete pages directly instead of just disabling them. Here's how it works. How to Rearrange Home Screen Pages Touch and hold Space on the Home screen to enter jitter mode. Tap the row of dots that represent Home screen pages. In the Home screen grid that appears, touch and drag a page to rearrange it relative to other pages. Others move in response to your dragging. When you're happy with your new arrangement, tap "Done" in the upper right corner of the screen, then tap "Done" again to exit dither mode. How to Disable or Remove Home Screen Pages Touch and hold Space on the Home screen to enter dither mode. Tap to represent home screen

See all articles