1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

How do I build a Google PR Checker?

Discussion in 'Programming' started by joeychgo, Apr 23, 2005.

  1. #1
    Yes I have the web API - but I cant seem to find anything on how to pull the web site PR.

    Anyone know how to do this?
    SEMrush
     
    joeychgo, Apr 23, 2005 IP
    SEMrush
  2. TheWebJunkie

    TheWebJunkie Banned

    Messages:
    630
    Likes Received:
    18
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Heres the source code for a free php pagerank checker

    
    <?php
    // PHP Google PageRank Calculator Script
    // ------------------------- August 2004
    // Contact author: pagerankscript@googlecommunity.com
    
    // for updates, visit:
    // http://www.googlecommunity.com/scripts/google-pagerank.php
    
    // provided by www.GoogleCommunity.com
    //  an unofficial community of Google fans
    // ---------------------------------------
    
    // Instructions
    //  Upload pagerank.php to your server
    //  Call it like this: http://www.example.com/pagerank.php?url=http://www.yahoo.com/
    //   example.com is your website. yahoo.com is the website to get the PR of
    //  The code below displays the PR for $url
    
    /*
        This code is released unto the public domain
    */
    //header("Content-Type: text/plain; charset=utf-8");
    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<strlen($string);$i++) {
            $result[$i] = ord($string{$i});
        }
        return $result;
    }
    
    function getrank($url) {
        $url = 'info:'.$url;
        $ch = GoogleCH(strord($url));
        $file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url";
        $data = file($file);
        $rankarray = explode (':', $data[2]);
        $rank = $rankarray[2];
        return $rank;
    }
    
    echo 'PageRank: '.getrank($url).'<br /><small>provided by <a href="http://www.googlecommunity.com/" target="_blank">Google Community.com</a></small>';
    
    ?> 
    
    PHP:
     
    TheWebJunkie, Apr 23, 2005 IP
    dirvish and FTEGal like this.
  3. noppid

    noppid gunnin' for the quota

    Messages:
    4,246
    Likes Received:
    232
    Best Answers:
    0
    Trophy Points:
    135
    #3
    The checksums are expired though.

    Does anyone have the current ones?
     
    noppid, Apr 23, 2005 IP
  4. noppid

    noppid gunnin' for the quota

    Messages:
    4,246
    Likes Received:
    232
    Best Answers:
    0
    Trophy Points:
    135
    #4
    Well I assumed expired. In php there seems to be a casting issue. We can do the correct checksum with that algo, hash and seed in java and C. Should have the php by tonight, but I really don't care if I have to use the C binary.

    So with the search API being a breeze and this being doable as well, the google tools is just a matter of html now for display and use.

    I've now started a recip link checking tool. I was inspired today when php classes dropped a php Class in my inbox today with all the work done. I suck at regexes.
     
    noppid, Apr 28, 2005 IP
  5. netaddict

    netaddict Peon

    Messages:
    640
    Likes Received:
    36
    Best Answers:
    0
    Trophy Points:
    0
    #5
    How can Google API be used in the above code to check PR?
     
    netaddict, Jun 6, 2005 IP
  6. ziandra

    ziandra Well-Known Member

    Messages:
    142
    Likes Received:
    11
    Best Answers:
    0
    Trophy Points:
    138
    #6
    I do not believe there is any way with the google api to get pagerank.

    You can find php code to compute google toolbar pagerank and php code to compute something that appears to be internal rank at http://www.searchengineengine.com/ . That site is a working demo of the code that is linked at the bottom of the page.
     
    ziandra, Jun 6, 2005 IP
  7. dvduval

    dvduval Notable Member

    Messages:
    3,368
    Likes Received:
    356
    Best Answers:
    1
    Trophy Points:
    260
    #7
    My php link directory script checks pagerank for all submitted links, but I don't have the code right off hand. I could get it for you though. Let me know if you still need it.
     
    dvduval, Jun 6, 2005 IP
  8. honey

    honey Prominent Member

    Messages:
    15,556
    Likes Received:
    712
    Best Answers:
    0
    Trophy Points:
    325
    #8
    Your script looks good dvduval !!
     
    honey, Jun 6, 2005 IP
  9. crocodile

    crocodile Peon

    Messages:
    1
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #9
    here's some info maybe you wanna know:
    http://www.z4.cn/bbs/showthread.php?threadid=1012
     
    crocodile, Jun 7, 2005 IP
  10. Svato

    Svato Peon

    Messages:
    88
    Likes Received:
    3
    Best Answers:
    0
    Trophy Points:
    0
    #10
    The script works fine, but there is problem with dynamic URLs, such as http://www.domain.com?page=10&linkid=4&linkname=Test

    In URL like this gets cut off at the first "&" sign, since it's considered to be another variable in the URL.

    So the above link gets translated to this in the Google query:
    http://www.google.com/search?client...=Rank&q=info:http://www.domain.com/links.asp?

    Any solutions to this?
     
    Svato, Sep 14, 2005 IP