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.

Need script to get google pagerank

Discussion in 'PHP' started by dshah, Oct 26, 2005.

  1. #1
    Anyone knows if script to get google pagerank is avaialable. I want source code.

    Please don't suggest scripts which are hosted by some other websites and need backlink to them.

    If anyone knows how to program one, just let me know and I will try to code it myself.

    Thanks
     
    dshah, Oct 26, 2005 IP
  2. WhatiFind

    WhatiFind offline

    Messages:
    1,789
    Likes Received:
    257
    Best Answers:
    0
    Trophy Points:
    180
  3. schmidte

    schmidte Peon

    Messages:
    345
    Likes Received:
    18
    Best Answers:
    0
    Trophy Points:
    0
    #3
    schmidte, Oct 26, 2005 IP
    dshah likes this.
  4. netaddict

    netaddict Peon

    Messages:
    640
    Likes Received:
    36
    Best Answers:
    0
    Trophy Points:
    0
    #4
    <?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; 
    } 
    ?>
    PHP:
    I hope this helps you :) $url is the URL for which you need to find PR.
     
    netaddict, Oct 26, 2005 IP
    dshah likes this.
  5. dshah

    dshah Well-Known Member

    Messages:
    1,840
    Likes Received:
    69
    Best Answers:
    0
    Trophy Points:
    115
    #5
    very well, as I expected it has to be some call made to google service URL.

    But, can anyone explain what does the fuctions GoogleCH, mix do here?

    That would be appriciated.
     
    dshah, Oct 26, 2005 IP
  6. exam

    exam Peon

    Messages:
    2,434
    Likes Received:
    120
    Best Answers:
    0
    Trophy Points:
    0
    #6
    It creates the checksum needed to send along with the URL so that Google will give you the PR for that site. :)
     
    exam, Oct 26, 2005 IP
  7. netaddict

    netaddict Peon

    Messages:
    640
    Likes Received:
    36
    Best Answers:
    0
    Trophy Points:
    0
    #7
    Is there any way so that we can incorporate Google API while querying the PR ?
     
    netaddict, Oct 26, 2005 IP
  8. Dread

    Dread Peon

    Messages:
    323
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    0
    #8
    anyone else get a 403 forbidden when trying to use the googlecommunity script?
     
    Dread, Oct 26, 2005 IP
  9. dshah

    dshah Well-Known Member

    Messages:
    1,840
    Likes Received:
    69
    Best Answers:
    0
    Trophy Points:
    115
    #9
    Thanks all for pointing in right direction.

    I used the script from googlecommunities and modified it to make mambot for mambo/joomla.

    Cheers!
     
    dshah, Oct 26, 2005 IP
  10. exam

    exam Peon

    Messages:
    2,434
    Likes Received:
    120
    Best Answers:
    0
    Trophy Points:
    0
    #10
    No.

    Are you trying it from a windows server? If so, try it on a *nix server and you'll see different results. Also I don't know if their checksum function is up-to-date.
     
    exam, Oct 28, 2005 IP
  11. michele

    michele Peon

    Messages:
    30
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #11
    I have gotten a 403 Forbidden response from my Fedora/Firefox box.
     
    michele, Oct 28, 2005 IP
  12. exam

    exam Peon

    Messages:
    2,434
    Likes Received:
    120
    Best Answers:
    0
    Trophy Points:
    0
    #12
    I think it's the checksum then. :)
     
    exam, Oct 28, 2005 IP
  13. Dread

    Dread Peon

    Messages:
    323
    Likes Received:
    17
    Best Answers:
    0
    Trophy Points:
    0
    #13
    Windows server, LOL, dont be daft! What idiot uses windows for a server invironment! Slackware all the way baby!

    Anyway, when you say its the checksum, what are you referring to?
     
    Dread, Oct 28, 2005 IP
    Mia likes this.
  14. exam

    exam Peon

    Messages:
    2,434
    Likes Received:
    120
    Best Answers:
    0
    Trophy Points:
    0
    #14
    What's wrong with using a windose server for development? Never for production. The checksum I refer to is the one produced by the google toolbar, that must be sent along with the request for authentication.
     
    exam, Oct 31, 2005 IP
  15. dtang4

    dtang4 Active Member

    Messages:
    303
    Likes Received:
    6
    Best Answers:
    0
    Trophy Points:
    58
    #15
    Here's some source code to a function that will output the pagerank given the URL.
    icemelon.com/php/google_pagerank.htm
     
    dtang4, Nov 3, 2005 IP
  16. KYO

    KYO Peon

    Messages:
    1
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #16
    Please help me.

    What i must change in this code icemelon.com/php/google_pagerank.htm for calc FUTURE PR ?

    Or it will be other code ? (for future pr)

    Because Future PR differ from Current PR.
    Thanks.
     
    KYO, Nov 7, 2005 IP
  17. HN Will

    HN Will Guest

    Messages:
    111
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    0
    #17
    <tip> Take out a certain variable from the query string and you'll get some interesting XML data. </tip>

    BTW - all PR checking tools, I believe (including the one i've developed) - are against G's terms and conditions. I keep holding on hoping i'm wrong - so could someone please enlighten me?
     
    HN Will, Nov 7, 2005 IP
  18. Shoemoney

    Shoemoney $

    Messages:
    4,474
    Likes Received:
    588
    Best Answers:
    0
    Trophy Points:
    295
    #18
    well since there is no api for pr the data would need to be scraped of course.

    btw I have http://www.shoemoney.com/serps.php if anyone wants source lemme know.
     
    Shoemoney, Nov 7, 2005 IP