PHP Dersleri, MySQL ve Açık Kaynak


« PHP Google Page Rank Kodu

PHP ile Google Page Rank değerini alıp kullanabileceğiniz bir script. Kullanımını getPageRank() fonksiyonu’nun içine aldığı url parametresi ile sağlıyor.

Örnek kullanım kodu:

<?php

  include('pagerank.php');

  $pr = getPageRank('http://www.guraysuerdem.com');

  echo 'guraysuerdem.com PageRank Değeri '.$pr;

?>


pagerank.php Kaynak Dosya:

<?php

  define('GOOGLE_MAGIC', 0xE6359A60);

  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){
      case 11: $c += ($url[$k + 10] << 24);
      case 10: $c += ($url[$k + 9] << 16);
      case 9 : $c += ($url[$k + 8] << 8);
      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 = _mix($a,$b,$c);
    return $_mix[2];
  }

  function _strord($string){
    for($i = 0;$i < strlen($string);$i++)
      $result[$i] = ord($string{$i});
    return $result;
}

  function getPageRank($url){
    $pagerank = -1;
    $ch = "6"._GoogleCH(_strord("info:" . $url));
    $fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
    if($fp){
      $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 = substr($data, $pos + 9);
      }
      fclose($fp);
    }
    return $pagerank;
}

?>




10 Yorum


  • 27 Şubat 2011
    Küfürbaz Haydo yazdı


    ellerinize sağlık. gerekliliğini hissettiğim bir fonksiyon. arşivime attım. teşekkürler.

  • 06 Nisan 2011
    Bayram YILDIZ yazdı


    Gürayım dersteyim mysql görüyoruz öylesine arattırdım google’dan seni gördüm (:

  • 10 Mayıs 2011
    Güray Süerdem yazdı


    Geliştir kendini 🙂

  • 26 Temmuz 2011
    mustafa yılmaz yazdı


    teşekkürler hocam arşive kattım

  • 08 Ağustos 2011
    onur berkay yazdı


    bunda bir sorun yojk değil mi ? çalışmadı ben de ?

  • 28 Ağustos 2011
    aydın tez yazdı


    Yukarıdaki kodlar bende de çalışmadı.

    http://www.brightyoursite.com/blog/2010/06/01/use-php-to-get-google-page-rank/

    @onur berkay buradaki kodlar çalışıyor.

  • 27 Eylül 2011
    Can yazdı


    @onur berkay fsockopen her standart hosting de açık olmayabilir ondan çalışmamıştır. Güray Bey aslında curl ile yapılsa daha iyi olur daha çok desteği olan bir mod …

  • 24 Ekim 2011
    Yusuf Fırat yazdı


    Teşekkürler, güzel bir örnek olmuş.

  • 11 Nisan 2012
    abduko yazdı


    işime yaradı teşekkürler

  • 10 Şubat 2013
    ikinci el eşyalar yazdı


    teşkkürler emeğine sağlık

Yorumla