Forum Katalogu Ciekawych Stron Strona Główna  Forum Katalogu Ciekawych Stron Strona Główna  
 
FAQ  FAQ   Szukaj  Szukaj   Użytkownicy  Użytkownicy   Ranking systemów  Ranking systemów   Grupy  Grupy  
 
Rejestracja  ::  Zaloguj Zaloguj się, by sprawdzić wiadomości
 
Forum Katalogu Ciekawych Stron Strona Główna » Google » Kod php do sprawdzania page rank

Napisz nowy temat  Odpowiedz do tematu
 Kod php do sprawdzania page rank « Zobacz poprzedni temat :: Zobacz następny temat » 
Autor Wiadomość
jackI
PostWysłany: 17 Kwi 2006, 21:51    Temat postu: Kod php do sprawdzania page rank Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 14 Kwi 2006
Posty: 9


Pilnie poszukuje dobrze szialajacy skrypt w php ktory sprawdza page rank. Posiadam pare wersji tego kody, ale zaden nie dziala mi poprawnie. Czy mozliwe jest aby ktos udostepnil mi kod ktory wykorzystuje Katalog Ciekawych Stron do sprawdzania page ranku witryn?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
KCS
Wysłany:     Temat postu: Reklama w KCS







Powrót do góry
Buk?ak
PostWysłany: 17 Kwi 2006, 23:08    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Stały bywalec
Stały bywalec

Dołączył: 21 Mar 2006
Posty: 320

Skąd: Zambrów

Kod:
<?php
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;
}

//wywołanie:
$pagerank=getrank("http://adres/");
echo $pagerank;
?>



W miejsce adres:
Kod:
$pagerank=getrank("http://adres/");


Kod by MartinB

Teraz coś ode Mnie - moja wersja skryptu, wymagana obsługa bibliotek GD

plik pr.lib.php

Kod:
<?php

define('GMAG', 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 GCH($url, $length=null, $init=GMAG) {
   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 getPR($_url) {
   $url = 'info:'.$_url;
   $ch = GCH(strord($url));
   $url='info:'.urlencode($_url);
   $pr = file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
   $pr_str = implode("", $pr);
   return substr($pr_str,strrpos($pr_str, ":")+1);
}


//echo "Twoj PR: ".getPR($_GET['url']);

?>


plik show_pr.php

Kod:

<?php
include "pr.lib.php";
# procent wykonania (mozna pobierac z formularza)
   $percent = getPR($_GET['url'])*10;

# szerokosc paska w pikselach
   $progress['width'] = 100;

# wysokosc paska w pikselach
   $progress['height'] = 30;

# kolor tla paska
   $progress['color'] = 'FFFFFF';

# kolor paska
# mozna zrobic dynamiczny... musisz sie pobawic Uśmiech...
   $progress['line'] = '000000';

# kolor ramki paska
   $progress['border'] = '888888';

# kolor czcionki
   $progress['font'] = '000000';

# modyfikujemy kolory na czerwony, zielony i niebieski
   $color_r = hexdec(substr($progress['color'], 0, 2));
   $color_g = hexdec(substr($progress['color'], 2, 2));
   $color_b = hexdec(substr($progress['color'], 4, 2));
   $border_r = hexdec(substr($progress['border'], 0, 2));
   $border_g = hexdec(substr($progress['border'], 2, 2));
   $border_b = hexdec(substr($progress['border'], 4, 2));
   $line_r = hexdec(substr($progress['line'], 0, 2));
   $line_g = hexdec(substr($progress['line'], 2, 2));
   $line_b = hexdec(substr($progress['line'], 4, 2));
   $font_r = hexdec(substr($progress['font'], 0, 2));
   $font_g = hexdec(substr($progress['font'], 2, 2));
   $font_b = hexdec(substr($progress['font'], 4, 2));


$img = imagecreatetruecolor($progress['width'], $progress['height'])
      or die('Nie można utworzyć obrazu GD');

# robimy ramke
$border_color = imagecolorallocate($img, $border_r, $border_g, $border_b);
$fill_color = imagecolorallocate($img, $color_r, $color_g, $color_b);
$font_color = imagecolorallocate($img, $font_r, $font_g, $font_b);

# kolorujemy caly pasek
imagefill($img, 0, 0, $fill_color);

$line_color = imagecolorallocate($img, 0, 255, 0);
$width = $progress['width']; $width--;
$height = $progress['height']; $height--;

imagerectangle($img, 0, 18, $width, $height, $border_color);

$new_x = round(($percent*$progress['width'])/100);
   #usuwamy jeden piksel w szerokosci na ramke
$new_x-= 3;

$new_y = $progress['height'];
   # j/w
$new_y-= 3;

imagefilledrectangle($img, 2, 20, $new_x, $new_y, $line_color);

$font_x = $progress['width']/2;
$font_x-= strlen("PageRank")*3;
$font_x-= 3;
$font_y = $progress['height']/2;
$font_y-= 3;

imagestring($img, 1, $font_x, 5, "PageRank: ".$percent/10, $font_color);

header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>


Ładujemy wszystko z formularz i jedziemy...
_________________
Liga Mistrzów
Pi?ka no?na
Olimpia Zambrów
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
jackI
PostWysłany: 18 Kwi 2006, 00:04    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 14 Kwi 2006
Posty: 9


Bardzo dziekuje za skrypty!

Jednak mam z nim problem, poniewaz np. kod Martina dziala na moim komputerza, ale jak zgram go na moj serwer w internecie to juz nie.

Na moim komputerze mam windowsa i wersje php chyba 4, a na serwerze jest linux i PHP 5.1.2. Czy moze to miec jakis wplyw i czy mozna cos na to poradzic?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Buk?ak
PostWysłany: 18 Kwi 2006, 09:47    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Stały bywalec
Stały bywalec

Dołączył: 21 Mar 2006
Posty: 320

Skąd: Zambrów

Nie mam pojęcia, na komputerze masz biblioteki GD a na serwerze nie masz ?
_________________
Liga Mistrzów
Pi?ka no?na
Olimpia Zambrów
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
jackI
PostWysłany: 18 Kwi 2006, 14:31    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 14 Kwi 2006
Posty: 9


Tak powinna byc, ale ja nie testowalem tego skryptu ktory jej wymaga, tylko wersje Martina.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Buk?ak
PostWysłany: 18 Kwi 2006, 14:45    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Stały bywalec
Stały bywalec

Dołączył: 21 Mar 2006
Posty: 320

Skąd: Zambrów

Cytat:
Tak powinna byc, ale ja nie testowalem tego skryptu ktory jej wymaga, tylko wersje Martina.

No przepraszam nie doczytałem się, poczekamy na odpowiedź Martina bo moim zdaniem wszystko powinno ładnie chodzić.
_________________
Liga Mistrzów
Pi?ka no?na
Olimpia Zambrów
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
jackI
PostWysłany: 18 Kwi 2006, 15:13    Temat postu: Odpowiedz z cytatem Zacytuj zaznaczone

Nowicjusz
Nowicjusz

Dołączył: 14 Kwi 2006
Posty: 9


Podaje wartosci zmiennych na moim komputerze i na serwerze dla skryptu Martina.

Dla strony www.onet.pl:

Moj komputer:

ch: -1093979281
url: info:www.onet.pl
rank: 7

Serwer:

ch: 65609398
url: info:www.onet.pl
rank: nie pokazuje
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Napisz nowy temat  Odpowiedz do tematu Strona 1 z 1


Forum Katalogu Ciekawych Stron Strona Główna » Google » Kod php do sprawdzania page rank
Skocz do:  



Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


katalog stron | forum
Powered by phpBB © 2005 phpBB Group