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.

Grabbing pagerank with Php?

Discussion in 'PHP' started by DanAbbamont, Dec 15, 2009.

  1. #1
    I used to use a class to grab pagerank, but all it returns is a -1 now. It's the same pagerank.php class that everyone else was using. Does this still work or did something change or is it just a problem on my end somewhere?
     
    DanAbbamont, Dec 15, 2009 IP
  2. astkboy2008

    astkboy2008 Peon

    Messages:
    211
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    0
    #2
    yes
    do you know
    its get -1 in my in site
    and recently
    its cused in high load
     
    astkboy2008, Dec 15, 2009 IP
  3. ramin24

    ramin24 Peon

    Messages:
    116
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #3
    good tips...but if anyone could tell more is better...!
     
    ramin24, Dec 15, 2009 IP
  4. HuggyStudios

    HuggyStudios Well-Known Member

    Messages:
    724
    Likes Received:
    20
    Best Answers:
    26
    Trophy Points:
    165
    #4
    Sounds like the code that google use may have changed, or something within your setup on your server does not work.

    Glen
     
    HuggyStudios, Dec 15, 2009 IP
  5. ShadyStudent

    ShadyStudent Peon

    Messages:
    341
    Likes Received:
    6
    Best Answers:
    0
    Trophy Points:
    0
    #5
    Might be an idea to show as the script or at least give more details on what part of the script has broken so we can have a decent attempt in helping you.
     
    ShadyStudent, Dec 15, 2009 IP
  6. MyVodaFone

    MyVodaFone Well-Known Member

    Messages:
    1,048
    Likes Received:
    42
    Best Answers:
    10
    Trophy Points:
    195
    #6
    Heres how....

    Usuage:
    
    <?php
      include('pagerank.php');
      $pr = getPageRank('digitalpoint.com');
      echo 'Digitalpoint has PR '.$pr;
    ?>
    
    PHP:
    Now create or replace your exsisting file pagerank.php with this:
    
    <?php
    function StrToNum($Str, $Check, $Magic)
    {
        $Int32Unit = 4294967296;
        $length = strlen($Str);
        for ($i = 0; $i < $length; $i++) {
            $Check *= $Magic; 	
            if ($Check >= $Int32Unit) {
                $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
                $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
            }
            $Check += ord($Str{$i}); 
        }
        return $Check;
    }
    
    function HashURL($String)
    {
        $Check1 = StrToNum($String, 0x1505, 0x21);
        $Check2 = StrToNum($String, 0, 0x1003F);
        $Check1 >>= 2; 	
        $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
        $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
        $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);	
        $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
        $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
        return ($T1 | $T2);
    }
    
    function CheckHash($Hashnum)
    {
        $CheckByte = 0;
        $Flag = 0;
        $HashStr = sprintf('%u', $Hashnum) ;
        $length = strlen($HashStr);
        for ($i = $length - 1;  $i >= 0;  $i --) {
            $Re = $HashStr{$i};
            if (1 === ($Flag % 2)) {              
                $Re += $Re;     
                $Re = (int)($Re / 10) + ($Re % 10);
            }
            $CheckByte += $Re;
            $Flag ++;	
        }
        $CheckByte %= 10;
        if (0 !== $CheckByte) {
            $CheckByte = 10 - $CheckByte;
            if (1 === ($Flag % 2) ) {
                if (1 === ($CheckByte % 2)) {
                    $CheckByte += 9;
                }
                $CheckByte >>= 1;
            }
        }
        return '7'.$CheckByte.$HashStr;
    }
    
    function getPageRank($url) {
    		$agents = array(
    					'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30',
    					'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.9',
    					'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.8',
    				);
    	$useragent = @ini_get('user_agent');
    	@ini_set('user_agent', $agents[array_rand($agents)]);
    	$ch = CheckHash(HashURL($url));	
    	$pr_url ="http://toolbarqueries.google.com/search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url";		
    	$data = file_get_contents($pr_url);
    	@ini_set('user_agent', $useragent);	
    	$pos = strpos($data, "Rank_");
    	if($pos !== false)
    	{
    		$pr = trim(substr($data, $pos + 9));
    		return str_replace("\n",'',$pr);
    	}
    	else
    		return 0;
    }
    ?>
    
    PHP:
    Your Welcome to +Rep me :) [​IMG]
     
    MyVodaFone, Dec 16, 2009 IP
    DanAbbamont, Comenius and asgsoft like this.
  7. olddocks

    olddocks Notable Member

    Messages:
    3,275
    Likes Received:
    165
    Best Answers:
    0
    Trophy Points:
    215
    #7
    It has actually stopped working for me since a month or so and the PR seems to be inaccurate. Looks like google have blocked all toolbar queries using php.
     
    olddocks, Dec 16, 2009 IP
  8. MyVodaFone

    MyVodaFone Well-Known Member

    Messages:
    1,048
    Likes Received:
    42
    Best Answers:
    10
    Trophy Points:
    195
    #8
    hu?

    They haven't blocked tool-bar queries, they've blocked how some are made, the code above works perfectly, try it.
     
    MyVodaFone, Dec 16, 2009 IP
  9. DanAbbamont

    DanAbbamont Guest

    Messages:
    330
    Likes Received:
    7
    Best Answers:
    0
    Trophy Points:
    0
    #9
    This is perfect! Thanks! +REP
     
    DanAbbamont, Dec 17, 2009 IP
  10. michelleradu

    michelleradu Peon

    Messages:
    1
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #10
    I used your PHP script and I got this error:
    Fatal error: Cannot redeclare strtonum() (previously declared in /home/sites/weblinkcheck.com/public_html/pagerank.php:2) in /home/sites/weblinkcheck.com/public_html/pagerank.php on line 2

    line 2:
    function StrToNum($Str, $Check, $Magic){
    ...}

    solved
     
    Last edited: Dec 23, 2009
    michelleradu, Dec 23, 2009 IP
  11. spyka

    spyka Greenhorn

    Messages:
    90
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    16
    #11
    Script works for me too, thanks a lot for it.
     
    spyka, Dec 24, 2009 IP
  12. Comenius

    Comenius Peon

    Messages:
    424
    Likes Received:
    9
    Best Answers:
    0
    Trophy Points:
    0
    #12
    Super helpful, and just what I was looking for. Thanks for posting this!
     
    Comenius, Jan 21, 2010 IP