Skocz do zawartości

Błąd w odczytywaniu PR


Rekomendowane odpowiedzi

Więc skopiuj poniższy kod i wklej do notatnika. zapisz jako pagerank.php

<?php
//PageRank Lookup v1.1 by HM2K (update: 31/01/07)

$tempurls= $item[url1]; // adres strony
$pieces = explode("\n", $tempurls); // znalezienie wszystkich zgłoszonych adresów URL
$size=sizeof($pieces);		// Tablica wielkości wykorzystania w do pętli na końcu programu

//Ustawienia - hosta i użytkownika
$googlehost='toolbarqueries.google.com';
$googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5';

//konwertować ciąg do 32-bit integer
function StrToNum($Str, $Check, $Magic) {
$Int32Unit = 4294967296;  // 2^32

$length = strlen($Str);
for ($i = 0; $i < $length; $i++) {
	$Check *= $Magic; 	
	//If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31), 
	//  the result of converting to integer is undefined
	if ($Check >= $Int32Unit) {
		$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
		//if the check less than -2^31
		$Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
	}
	$Check += ord($Str{$i}); 
}
return $Check;
}

//genearate a hash for a url
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);
}

//genearate a checksum for the hash string
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;
}

//return the pagerank checksum hash
function getch($url) { return CheckHash(HashURL($url)); }

//return the pagerank figure
function getpr($url) {
global $googlehost,$googleua;
$ch = getch($url);
$fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
if ($fp) {
   $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n";
   //echo "<pre>$out</pre>\n"; //debug only
   $out .= "User-Agent: $googleua\r\n";
   $out .= "Host: $googlehost\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);

   //$pagerank = substr(fgets($fp, 128), 4); //debug only
   //echo $pagerank; //debug only
   while (!feof($fp)) {
		$data = fgets($fp, 128);
		//echo $data;
		$pos = strpos($data, "Rank_");
		if($pos === false){} else{
			$pr=substr($data, $pos + 9);
			$pr=trim($pr);
			$pr=str_replace("\n",'',$pr);
			return $pr;
		}
   }
   //else { echo "$errstr ($errno)<br />\n"; } //debug only
   fclose($fp);
}
}

//wygenerować graficzny pagerank
function pagerank($url,$width=40,$method='style') {
if (!preg_match('/^(https:\/\/)?([^\/]+)/i', $url)) { $url='https://'.$url; }
$pr=getpr($url);
$pagerank="PageRank: $pr/10";

//The (old) image method
if ($method == 'image') {
$prpos=$width*$pr/10;
$prneg=$width-$prpos;
$html='<img src="https://www.google.com/images/pos.gif" width='.$prpos.' height=3 border=0 alt="'.$pagerank.'"><img src="https://www.google.com/images/neg.gif" width='.$prneg.' height=3 border=0 alt="'.$pagerank.'">';
}
//The pre-styled method
if ($method == 'style') {
$prpercent=100*$pr/10;
$html='<div style="padding-top:6px; margin-left:34px"><div style="float:left; position: relative; width: '.$width.'px; padding: 0; background: #D9D9D9;"><strong style="width: '.$prpercent.'%; display: block; position: relative; background: red; text-align: center; color: #333; height: 3px; line-height: 40px;"><span></span></strong></div>';
}
echo "<div style=\"background-image: url(page_rank.gif); width:80px; height:15px\" title=\"$pagerank\">";
echo "<div style=\"float:left; padding-left:2px; padding-top:1px;font-size:10px; font-family: Tahoma; font-weight: bold;\">";
echo "<span style=\"margin-left:66px; color:#800000 \">$pr</span></div></div>";

}

// for loop for finding pagerank of multple urls
	for ($j=0; $j<$size; $j++)
	{		
	$url=$pieces[$j];
	echo pagerank($pieces[$j]);
	}
?>

Teraz otwórz plik szcz.php z folderu otwarty_disp i znajdz

<div id="text_link"><?=$item[url2]?></div><br />

pod nim wklej

<? include 'pagerank.php'?><br />

i dezaktywuj orginalny pagerank poprzez objęcie go znakami komentarza html

<!-- jakiś kod -->

Koniec.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 30
  • Dodano
  • Ostatniej odpowiedzi

Wcześniej wkleiłem trochę zły kod i późno się zorientowałem.

Wklej ten kod i właduj plik pagerank.php do folderu "otwarty_disp" I bym zapomniał. Trzeba jeszcze obrazek władować do tego samego folderu

pagerank.gif

Odnośnik do komentarza
Udostępnij na innych stronach

No to próbujemy jeszcze raz.

Wklejam tą wersję któą ja mam, nie pamiętam czy coś modyfikowałem dodatkowo w orginalnym skrypcie więc daje Ci taki który Działa napewno.

Skopiuj poniższy kod i wklej do pliku pagerank.php

<?php
//PageRank Lookup v1.1 by HM2K (update: 31/01/07)

$tempurls= $item[url1]; // adres strony
$pieces = explode("\n", $tempurls); // znalezienie wszystkich zgłoszonych adresów URL
$size=sizeof($pieces);		// Tablica wielko¶ci wykorzystania w do pętli na końcu programu

//Ustawienia - hosta i użytkownika
$googlehost='toolbarqueries.google.com';
$googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5';

//konwertować ci±g do 32-bit integer
function StrToNum($Str, $Check, $Magic) {
$Int32Unit = 4294967296;  // 2^32

$length = strlen($Str);
for ($i = 0; $i < $length; $i++) {
	$Check *= $Magic; 	
	//If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31), 
	//  the result of converting to integer is undefined
	if ($Check >= $Int32Unit) {
		$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
		//if the check less than -2^31
		$Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
	}
	$Check += ord($Str{$i}); 
}
return $Check;
}

//genearate a hash for a url
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);
}

//genearate a checksum for the hash string
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;
}

//return the pagerank checksum hash
function getch($url) { return CheckHash(HashURL($url)); }

//return the pagerank figure
function getpr($url) {
global $googlehost,$googleua;
$ch = getch($url);
$fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
if ($fp) {
   $out = "GET /search?client=navclient-auto&ch=$ch&features=Rank&q=info:$url HTTP/1.1\r\n";
   //echo "<pre>$out</pre>\n"; //debug only
   $out .= "User-Agent: $googleua\r\n";
   $out .= "Host: $googlehost\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fwrite($fp, $out);

   //$pagerank = substr(fgets($fp, 128), 4); //debug only
   //echo $pagerank; //debug only
   while (!feof($fp)) {
		$data = fgets($fp, 128);
		//echo $data;
		$pos = strpos($data, "Rank_");
		if($pos === false){} else{
			$pr=substr($data, $pos + 9);
			$pr=trim($pr);
			$pr=str_replace("\n",'',$pr);
			return $pr;
		}
   }
   //else { echo "$errstr ($errno)<br />\n"; } //debug only
   fclose($fp);
}
}

//wygenerować graficzny pagerank
function pagerank($url,$width=40,$method='style') {
if (!preg_match('/^(https:\/\/)?([^\/]+)/i', $url)) { $url='https://'.$url; }
$pr=getpr($url);
$pagerank="PageRank: $pr/10";

//The (old) image method
if ($method == 'image') {
$prpos=$width*$pr/10;
$prneg=$width-$prpos;
$html='<img src="https://www.google.com/images/pos.gif" width='.$prpos.' height=3 border=0 alt="'.$pagerank.'"><img src="https://www.google.com/images/neg.gif" width='.$prneg.' height=3 border=0 alt="'.$pagerank.'">';
}
//The pre-styled method
if ($method == 'style') {
$prpercent=100*$pr/10;
$html='<div style="padding-top:6px; margin-left:34px"><div style="float:left; position: relative; width: '.$width.'px; padding: 0; background: #D9D9D9;"><strong style="width: '.$prpercent.'%; display: block; position: relative; background: red; text-align: center; color: #333; height: 3px; line-height: 40px;"><span></span></strong></div>';
}
echo "<div style=\"background-image: url(page_rank.gif); width:80px; height:15px\" title=\"$pagerank\">";
echo "<div style=\"float:left; padding-left:2px; padding-top:1px;font-size:10px; font-family: Tahoma; font-weight: bold;\">";
echo "<span style=\"margin-left:66px; color:#800000 \">$pr</span></div></div>";

}

// for loop for finding pagerank of multple urls
	for ($j=0; $j<$size; $j++)
	{		
	$url=$pieces[$j];
	echo pagerank($pieces[$j]);
	}
?>

wrzuć na serwer do filderu "otwarty_disp" wraz z obrazkiem

pagerank.gif

Teraz otwóż plik szcz.php i znajdź

<div id="text_link"><?=$item[url2]?></div><br />

wklej poniżej

<? include 'pagerank.php'?><br />

Otwóż teraz szczegóły jakiegoś wpsiu i musi wyswietlić Ci ci się obrazek z wpisaną wartością. Mi się wyświetla bez problemu.

Odnośnik do komentarza
Udostępnij na innych stronach

Dostosowałem skrypt pochodzący ze strony https://www.hm2k.com/projects/pagerank, na potrzeby miniacza. Usunąłem w nim też zbędne linijki kodu (niepotrzebna pętla dla sprawdzenia każdorazowo jednego adresu), niepotrzebne także funkcje wyświetlające graficzny PR, skoro miniacz potrzebuje tylko wyniku w postaci liczbowej. Dzięki temu nie ma potrzeby modyfikacji wszystkich plików odwołujących się do funkcji getrank(). Działająca funkcja sprawdzania PageRank dostępna jest również na demo.melma.pl (można sprawdzić w panelu administratora, zmieniając np. pagerank dowolnego wpisu na -9, czyli ustawiając wartość domyślną).

Gotowy do podmiany plik można pobrać z mojej strony. Wystarczy tylko nadpisać oryginalny plik pr.php znajdujący się w katalogu otwarty_disp.

demo_miniacz_468x60.gif

Polecam projektowanie stron Łódź, oraz moderowany, podrasowany katalog, w którym znajdziesz dobre polskie strony, o niebagatelnej treści.

Odnośnik do komentarza
Udostępnij na innych stronach

Z przykrością muszę was poinformować że narazie muszę zostawić przeróbkę PR.

Jadę na wymarzony urlop, po powrocie wrócę do niego i zapewne już gotowy udostępnię

Przeróbka, którą przedstawiłem powyżej nie wymaga modyfikacji w miniaczu.

demo_miniacz_468x60.gif

Polecam projektowanie stron Łódź, oraz moderowany, podrasowany katalog, w którym znajdziesz dobre polskie strony, o niebagatelnej treści.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności