Simple Pagerank script

Discussion in 'PHP' started by PuneetJvw, Sep 1, 2009.

  1. #1
    Hi,

    I would like to download a simple php pagerank script where you just enter the url in your textbox, hit submit and it will return the pagerank.

    Simple and small php script required and no asp or ajax etc.

    Any help ?


    Thanks,
    ASHISH THAKKAR
     
    PuneetJvw, Sep 1, 2009 IP
  2. JAY6390

    JAY6390 Peon

    Messages:
    918
    Likes Received:
    31
    Best Answers:
    0
    Trophy Points:
    0
  3. PuneetJvw

    PuneetJvw Well-Known Member

    Messages:
    2,313
    Likes Received:
    10
    Best Answers:
    0
    Trophy Points:
    185
    Digital Goods:
    1
    Articles:
    2
    #3
    yes had already done that... still no answers...

    pls dont post a yahoo or bing search link next.


    thanks,
    ASHISH THAKKAR
     
    PuneetJvw, Sep 1, 2009 IP
  4. JAY6390

    JAY6390 Peon

    Messages:
    918
    Likes Received:
    31
    Best Answers:
    0
    Trophy Points:
    0
    #4
    JAY6390, Sep 1, 2009 IP
  5. PuneetJvw

    PuneetJvw Well-Known Member

    Messages:
    2,313
    Likes Received:
    10
    Best Answers:
    0
    Trophy Points:
    185
    Digital Goods:
    1
    Articles:
    2
    #5
    I had the same script and it no longer works.

    shows -1 for all sites.


    regards,
    ASHISH THAKKAR
     
    PuneetJvw, Sep 1, 2009 IP
  6. JAY6390

    JAY6390 Peon

    Messages:
    918
    Likes Received:
    31
    Best Answers:
    0
    Trophy Points:
    0
    #6
    Well I've literally just tried it now and it works fine

    
    
    
    <?php
    
      define('GOOGLE_MAGIC', 0xE6359A60);
    
      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){
          case 11: $c += ($url[$k + 10] << 24);
          case 10: $c += ($url[$k + 9] << 16);
          case 9 : $c += ($url[$k + 8] << 8);
          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 = _mix($a,$b,$c);
        return $_mix[2];
      }
    
      function _strord($string){
        for($i = 0;$i < strlen($string);$i++)
          $result[$i] = ord($string{$i});
        return $result;
    }
    
      function getPageRank($url){
        $pagerank = -1;
        $ch = "6"._GoogleCH(_strord("info:" . $url));
        $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
        if($fp){
          $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);
          }
          fclose($fp);
        }
        return $pagerank;
    }
    
    $pr = getPageRank('http://forums.digitalpoint.com/');
    echo $pr;
    
    PHP:
     
    JAY6390, Sep 1, 2009 IP
  7. PuneetJvw

    PuneetJvw Well-Known Member

    Messages:
    2,313
    Likes Received:
    10
    Best Answers:
    0
    Trophy Points:
    185
    Digital Goods:
    1
    Articles:
    2
    #7
    can you pm me your url so i can see it.

    Wow it stopped working for me so i uploaded on another server.

    it still showed the same problem.
     
    PuneetJvw, Sep 1, 2009 IP
  8. JAY6390

    JAY6390 Peon

    Messages:
    918
    Likes Received:
    31
    Best Answers:
    0
    Trophy Points:
    0
    #8
    I already showed it at the bottom of that php script above. it has
    $pr = getPageRank('http://forums.digitalpoint.com/');
    echo $pr;
     
    JAY6390, Sep 1, 2009 IP
  9. tag44

    tag44 Peon

    Messages:
    272
    Likes Received:
    3
    Best Answers:
    0
    Trophy Points:
    0
    #9
    Copy the best available page rank check script on the internet here :
     
    tag44, Sep 1, 2009 IP
  10. PuneetJvw

    PuneetJvw Well-Known Member

    Messages:
    2,313
    Likes Received:
    10
    Best Answers:
    0
    Trophy Points:
    185
    Digital Goods:
    1
    Articles:
    2
    #10
    Did u test it or have you just corrected the script?

    i uploaded the script and still shows error.

    thanks,
    ASHISH THAKKAR
     
    PuneetJvw, Sep 1, 2009 IP
  11. JAY6390

    JAY6390 Peon

    Messages:
    918
    Likes Received:
    31
    Best Answers:
    0
    Trophy Points:
    0
    #11
    I just copied the code for the script, and added the two bottom lines to get the pr. nothing else
     
    JAY6390, Sep 1, 2009 IP
  12. JAY6390

    JAY6390 Peon

    Messages:
    918
    Likes Received:
    31
    Best Answers:
    0
    Trophy Points:
    0
    #12
    You can also use this class:
    http://www.phpclasses.org/browse/package/2682.html

    Just download the class, then use
    include('/path/to/class.googlepr.php');
    $pr = new GooglePR();
    You can then get pr by simply using
    $pagerank = $pr->GetPR('http://www.yoururl.com');
     
    JAY6390, Sep 1, 2009 IP
    PuneetJvw likes this.
  13. foxrings

    foxrings Peon

    Messages:
    42
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #13
    I'm having similar problems with both options on my local intranet site.
    Could it be something with my router settings? Port forwarding or some such?
     
    foxrings, Sep 30, 2009 IP
  14. foxrings

    foxrings Peon

    Messages:
    42
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #14
    omg took forever to figure out what was wrong :rolleyes:
    apparently it has something to do with php not connecting to BIND DNS properly
    not sure how yet, only got this far

    $fp = fsockopen("64.71.249.32", 80, $errno, $errstr, 30); // toolbarqueries.google.com

    by refering to the IP address directly, it now works
    now that i know what is wrong shouldn't be long to google how to fix it
     
    foxrings, Oct 6, 2009 IP