How to test for Google PageRank

Discussion in 'Programming' started by footballboy, Jul 25, 2007.

  1. #1
    Hi,

    I am looking for a way to automatically get a page for its pagerank.
    Preferably using PHP, but any other language will do as well.

    There are so many sites out there that provide this functionality that it can not be difficult to write a programme that does it
     
    footballboy, Jul 25, 2007 IP
  2. timelf123

    timelf123 Peon

    Messages:
    897
    Likes Received:
    24
    Best Answers:
    0
    Trophy Points:
    0
    #2
    timelf123, Jul 25, 2007 IP
  3. footballboy

    footballboy Peon

    Messages:
    208
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #3
    yep, I would like that functionality to build an admin tool for myself.
     
    footballboy, Jul 25, 2007 IP
  4. ProgrammersTalk

    ProgrammersTalk Peon

    Messages:
    684
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    0
    #4
    ProgrammersTalk, Jul 25, 2007 IP
  5. footballboy

    footballboy Peon

    Messages:
    208
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #5
    script does not seem to work - anybody else out there that can help?
     
    footballboy, Jul 26, 2007 IP
  6. timelf123

    timelf123 Peon

    Messages:
    897
    Likes Received:
    24
    Best Answers:
    0
    Trophy Points:
    0
    #6
    I have an AJAX script that does this if you can stumble some sites or do something for me ;)
     
    timelf123, Jul 26, 2007 IP
  7. Sygon

    Sygon Peon

    Messages:
    439
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    0
    #7
    Ok this is from http://www.bewebmaster.com/141.php But ill explain it easier:

    If your not aware of OOP (Class's and functions) here is a page for you to save.

    
    <?php
    define('GOOGLE_MAGIC', 0xE6359A60);
    class pageRank{
    var $pr; 
     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 ^= ($this->zeroFill($c,13));
       $b -= $c; $b -= $a; $b ^= ($a<<8);
       $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,13));
       $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,12));
       $b -= $c; $b -= $a; $b ^= ($a<<16);
       $c -= $a; $c -= $b; $c ^= ($this->zeroFill($b,5));
       $a -= $b; $a -= $c; $a ^= ($this->zeroFill($c,3));
       $b -= $c; $b -= $a; $b ^= ($a<<10);
       $c -= $a; $c -= $b; $c ^= ($this->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 = $this->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);
       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]);
      }
      $mix = $this->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<strlen($string);$i++) {
       $result[$i] = ord($string{$i});
      }
     return $result;
     }
     
     function printrank($url){
      $ch = "6".$this->GoogleCH($this->strord("info:" . $url));
      
      $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
      if (!$fp) {
         echo "$errstr ($errno)<br />\n";
      } else {
         $out = "GET /search?client=navclient-auto&ch=" . $ch .  "&features=Rank&q=info:" . $url . " HTTP/1.1\r\n" ;
         $out .= "Host: www.google.com\r\n" ;
         $out .= "Connection: Close\r\n\r\n" ; 
         fwrite($fp, $out);
         while (!feof($fp)) {
           $data = fgets($fp, 128);
           $pos = strpos($data, "Rank_");
             if($pos === false){
             }else{
               $pagerank = substr($data, $pos + 9);
               $this->pr_image($pagerank);
             }
         }
         fclose($fp);
      }
     }
    //display pagerank image. Create your own or download images I made for this script. If you make your own make sure to call them pr0.gif, pr1.gif, pr2.gif etc.
     function pr_image($pagerank){
       $this->pr = "<img src=\"images/pr".$pagerank.".gif\" alt=\"PageRank ".$pagerank." out of 10\">" ;
     }
     function get_pr(){
      return $this->pr;
     }
    }
    ?>
    
    PHP:
    Save it as pagerank.php

    Then to basically call the pagerank you include the file and call the class and function so:
    
    <?php
    include("pagerank.php");
    $gpr = new pageRank();
    $gpr->printrank("http://www.yahoo.com");
    //display image
    echo $gpr->get_pr();
    ?>
    
    PHP:
    Basically change the $gpr->printrank("http://www.yahoo.com"); to $gpr->printrank("http://www.yoursite.com");

    Also make images for the page rank i.e Your page rank is one and call them pr(number).gif i.e pr1.gif pr2.gif etc

    Hope that helps and for you to print the rank of the website you put the code on without entering the url do:

    
    <?php
    include("pagerank.php");
    $gpr = new pageRank();
    $gpr->printrank($_SERVER['http_host']);
    //display image
    echo $gpr->get_pr();
    ?>
    
    PHP:
    Hope that helps :)
     
    Sygon, Jul 26, 2007 IP
    exodus likes this.
  8. timelf123

    timelf123 Peon

    Messages:
    897
    Likes Received:
    24
    Best Answers:
    0
    Trophy Points:
    0
    #8
    timelf123, Jul 26, 2007 IP
  9. filjan

    filjan Peon

    Messages:
    34
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #9
    If you search through Google for pagerank script code you should find many examples of the pagerank script. You can find examples in many different languages.
     
    filjan, Jul 26, 2007 IP
  10. euphers

    euphers Peon

    Messages:
    56
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #10
    euphers, Jul 31, 2007 IP
  11. timelf123

    timelf123 Peon

    Messages:
    897
    Likes Received:
    24
    Best Answers:
    0
    Trophy Points:
    0