• 29-05-2006, 04:13:14
    #1
    Üyeliği durduruldu
    Çoğunuza lazım olur galiba... Kolay Gelsin...

    <html>
    <body style="font-family:verdana;font-size:13px">
    <?php
    /*
    This code is released unto the public domain
    
    Raistlin Majere euclide@email.it
    
    */
    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 get_pr($url) {
    $result=array("",-1);
    
    if (($url.""!="")&&($url.""!="http://")):
    // check for protocol
    if (substr(strtolower($url),0,7)!="http://"):
    $url="http://".$url;
    endif;
    
    $url="info:".$url;
    $checksum=GoogleCH(strord($url));
    $google_url=sprintf("http://www.google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=".$url,$checksum); // url to get from google
    
    $contents="";
    // let's get ranking
    // this way could cause problems because the Browser Useragent is not set...
    if ($handle=fopen($google_url,"rb")):
    while(true):
    $data=fread($handle,8192);
    if (strlen($data)==0):
    break;
    endif;
    $contents.=$data;
    endwhile;
    fclose($handle);
    else:
    $contents="Connection unavailable";
    endif;
    
    $result[0]=$contents;
    // Rank_1:1:0 = 0
    // Rank_1:1:5 = 5
    // Rank_1:1:9 = 9
    // Rank_1:2:10 = 10 etc
    $p=explode(":",$contents);
    if (isset($p[2])):
    $result[1]=$p[2];
    endif;
    endif;
    
    return $result;
    }
    
    // GET IT !
    $pr=get_pr($_GET["url"]);
    $output=$pr[0];
    $pagerank=$pr[1];
    ?>
    <br>
    <form method="get" action="?r=<?=time()?>">
    <center>
    <table style="font-family:verdana;font-size:13px">
    <tr>
    <td valign="top"><b>Url</b></td>
    <td valign="top"><?=$_GET['url']?></td>
    </tr>
    <tr>
    <td valign="top"><b>Page Rank</b></td>
    <td valign="top" style="color:red"><b><?=$pagerank?></b></td>
    </tr>
    <tr>
    <td valign="top"><b>Google<br>output</b></td>
    <td valign="top"><div style="overflow:auto;width:250px;height:150px;background-color:#eeeeee;border:1px solid #aaaaaa"><?=$output?></div></td>
    </tr>
    </table>
    
    <br>
    
    <input type="text" name="url" size="80" value="<?=isset($_GET['url'])?$_GET['url']:"http://"?>"><br>
    <input type="submit">
    
    </center>
    </form>
    </body>
    </html>
  • 04-06-2006, 01:53:10
    #2
    Üyeliği durduruldu
    saolasın KaaN
  • 05-10-2006, 16:59:35
    #3
    sağol KaaN
  • 05-10-2006, 18:01:12
    #4
    Üyeliği durduruldu
    duzgun calişmiyor galiba, googletool bardaki degerlerden farklı cıkıyor.
  • 05-10-2006, 18:28:16
    #5
    Daha önceden PR yi buna benzer bir kod ile gösterebiliyordum fakat şuanki server de çalışmıyor. Sunucuda çalışmasına engel ne olabilir. (Açık olması gereken ayarlar nelerdir)
    Teşekkürler.
  • 06-10-2006, 00:04:16
    #6
    32-64 bit için yeni kodlar yayınlanmıştı:


    Google PageRank Scripti v1.0 (Farklı hostlarda sorun çıkarmayan versiyonu)
    http://www.in-spiretech.com/php-pagerank/

    Her hostta çalışmayan PHP kodlarım
    http://forum.ceviz.net/showthread.php?p=235769
    ...