free script for checkin pagerank

Discussion in 'Programming' started by Ice_sCream, Oct 3, 2006.

  1. #1
    I found many scripts, which chek google pr, but noone work on those my servers, where I have PHP last version. Can u give me the code, which I can use for get pr? Great thanks for this...
     
    Ice_sCream, Oct 3, 2006 IP
  2. trojan

    trojan Peon

    Messages:
    26
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #2
    you should try this site
    prchecker{dot}info
    free with nice image
     
    trojan, Oct 4, 2006 IP
  3. TwistMyArm

    TwistMyArm Peon

    Messages:
    931
    Likes Received:
    44
    Best Answers:
    0
    Trophy Points:
    0
    #3
    It's quite possible that Google is not responding to your HTTP requests for the data in the first place.

    For some reason one of my servers can do HTTP requests to most places but as soon as I tried running the PR checker scripts, they failed. Eventually I found that the connection was never being made.

    I was only using it for a directory so instead of working it all out I spent 30 minutes and wrote a script to run on localhost that let's me copy in URLs and then it spits out the MySQL queries I need to run remotely to update the tables :(
     
    TwistMyArm, Oct 5, 2006 IP
  4. akashif

    akashif Guest

    Best Answers:
    0
    #4
    hi

    here is a Working Code of PR , it had been tested Properly
    this code uses a class which is definatly not Writen by me :)
    you need to Create a File names

    
    <?php
    /******************
     * PageRankXor32 class created by MagicBeanDip
     * PageRank class was created by others
     * Look for updates at http://v1.magicbeandip.com/mbd-file/PageRankReport.php
     * This code is released into the Public Domain
     *
     * Sample use:
     * include('PageRankXor32.php');
     * $oPR=new PageRankXor32();
     * echo $oPR->getRank('http://www.amazon.com');
     *
     ******************/
    
    define('GOOGLE_MAGIC', 0xE6359A60);
    
    // Use this class if your server is having problems with bitwise operations
    class PageRankXor32 extends PageRank {
        function xor32($a, $b) {
            return $this->int32($a) ^ $this->int32($b);
        }
        //return least significant 32 bits
        //works by telling unserialize to create an integer even though we provide a double value
        function int32($x) {
            return unserialize("i:$x;");
            //return intval($x); // This line doesn't work on all servers.
        }
        
        function mix($a,$b,$c) {
            $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,13));
            $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<8);
            $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,13));
            $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,12));
            $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<16);
            $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,5));
            $a -= $b; $a -= $c; $a = $this->xor32($a,$this->zeroFill($c,3));
            $b -= $c; $b -= $a; $b = $this->xor32($b,$a<<10);
            $c -= $a; $c -= $b; $c = $this->xor32($c,$this->zeroFill($b,15));
            return array($a,$b,$c);
        }
    }    
    
    //This class should work on most servers
    class PageRank {
        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;
            }
    
        //returns -1 if no page rank was found
        function getRank($url){
            $ch = "6".$this->GoogleCH($this->strord("info:" . $url));
            
            $pagerank=-1;
            $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 = trim(substr($data, $pos + 9));
                    }
                }
                fclose($fp);
            }
            return $pagerank;
        }
    } 
    
    PHP:
    here is the File to Obtain the PR using Above File

    
    
    require_once 'PageRankXor32.php';
    $oPR=new PageRankXor32();
    
    $URL='http://www.click.pk/';
    $PR = $oPR->getRank($URL);
    
    echo $PR;
    
    PHP:

    Try it. i am sure it will work , as i have tested it on many servers and with many scripts specially with PHPLD

    Ali Kashif
    http://www.click.pk
     
    akashif, Oct 5, 2006 IP
  5. TwistMyArm

    TwistMyArm Peon

    Messages:
    931
    Likes Received:
    44
    Best Answers:
    0
    Trophy Points:
    0
    #5
    Hi akashif:

    Unfortunately, I've already tried that one, too. My server might be 'freaky' or something, but it definitely cannot connect to the Google server. It just times out...

    Anyway, just thought I'd let you know that although it does seem to help a number of people out that weren't able to use it before, it definitely doesn't solve all problems.

    Who knows? Ice_sCream's problem could be that outgoing HTTP connections are banned on his server: only s/he can tell us that, though :(
     
    TwistMyArm, Oct 5, 2006 IP