Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Dowiedz się więcej OK, rozumiem

Skrypt Page Rank podpięcie do HTML

Poznaj nowe sposoby wyrażania swoich pomysłów. Naucz się tworzyć nowoczesne serwisy, umożliwiające łatwy dostęp do informacji bez względu na sprzęt czy przeglądarkę użytkownika. Dowiedz się w jaki sposób wkroczyć w przyszłość korzystając z HTML5.

Skrypt Page Rank podpięcie do HTML

Post 23.08.2013, 20:27:03

Witam ! :)

Sprawa jest następującej treści:

Posiadam skrypt podający Page Rank wybranej witryny w php:

Kod: Zaznacz cały
<?php
class GooglePageRankChecker {
 
// Track the instance
private static $instance;
 
// Constructor
function getRank($page) {
// Create the instance, if one isn't created yet
if(!isset(self::$instance)) {
self::$instance = new self();
}
// Return the result
return self::$instance->check($page);
}
 
// Convert string to a number
function stringToNumber($string,$check,$magic) {
$int32 = 4294967296;  // 2^32
$length = strlen($string);
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
//  refer to http://www.php.net/manual/en/language.types.integer.php
if($check >= $int32) {
$check = ($check - $int32 * (int) ($check / $int32));
//if the check less than -2^31
$check = ($check < -($int32 / 2)) ? ($check + $int32) : $check;
}
$check += ord($string{$i});
}
return $check;
}
 
// Create a url hash
function createHash($string) {
$check1 = $this->stringToNumber($string, 0x1505, 0x21);
$check2 = $this->stringToNumber($string, 0, 0x1003F);
 
$factor = 4;
$halfFactor = $factor/2;
 
$check1 >>= $halfFactor;
$check1 = (($check1 >> $factor) & 0x3FFFFC0 ) | ($check1 & 0x3F);
$check1 = (($check1 >> $factor) & 0x3FFC00 ) | ($check1 & 0x3FF);
$check1 = (($check1 >> $factor) & 0x3C000 ) | ($check1 & 0x3FFF);
 
$calc1 = (((($check1 & 0x3C0) << $factor) | ($check1 & 0x3C)) << $halfFactor ) | ($check2 & 0xF0F );
$calc2 = (((($check1 & 0xFFFFC000) << $factor) | ($check1 & 0x3C00)) << 0xA) | ($check2 & 0xF0F0000 );
 
return ($calc1 | $calc2);
}
 
// Create checksum for hash
function checkHash($hashNumber)
{
$check = 0;
$flag = 0;
 
$hashString = sprintf('%u', $hashNumber) ;
$length = strlen($hashString);
 
for ($i = $length - 1;  $i >= 0;  $i --) {
$r = $hashString{$i};
if(1 === ($flag % 2)) {
$r += $r;
$r = (int)($r / 10) + ($r % 10);
}
$check += $r;
$flag ++;
}
 
$check %= 10;
if(0 !== $check) {
$check = 10 - $check;
if(1 === ($flag % 2) ) {
if(1 === ($check % 2)) {
$check += 9;
}
$check >>= 1;
}
}
 
return '7'.$check.$hashString;
}
 
function check($page) {
 
// Open a socket to the toolbarqueries address, used by Google Toolbar
$socket = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30);
 
// If a connection can be established
if($socket) {
// Prep socket headers
$out = "GET /tbr?client=navclient-auto&ch=".$this->checkHash($this->createHash($page)).
"&features=Rank&q=info:".$page."&num=100&filter=0 HTTP/1.1\r\n";
$out .= "Host: toolbarqueries.google.com\r\n";
$out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)\r\n";
$out .= "Connection: Close\r\n\r\n";
 
// Write settings to the socket
fwrite($socket, $out);
 
// When a response is received...
$result = "";
while(!feof($socket)) {
$data = fgets($socket, 128);
$pos = strpos($data, "Rank_");
if($pos !== false){
$pagerank = substr($data, $pos + 9);
$result += $pagerank;
}
}
// Close the connection
fclose($socket);
 
// Return the rank!
return $result;
}
}
}
?>


Wywołuje się go kodem:

Kod: Zaznacz cały
$rank = GooglePageRankChecker::getRank("wp.pl"); // Replace with your website url
echo "Google Pagerank: " .$rank;



I teraz pojawia się problem:

Posiadam katalog stron napisany w dość prymitywny sposób. Wszystkie pliki są w html i kategorie są odnośnikami do plików. Czyli taka całkowicie "ręczna" wersja strony, bez bazy danych.
Chciałbym odwołać się do skryptu PageRank w pliku html, aby np obok dodanego przezemnie wpisu pojawił się PageRank strony, którą dodałem.
I teraz nie wiem jak to zrobić. Pomysł mam następujący:

odwołuje się do skryptu php odpowiadający za przetworzenie PageRank i umieszczam w pliku HTML kod PHP odpowiadające za wywołanie PageRanku danej strony.
Mam problem na przełożenie tego na język html/php i nie jestem pewien również czy to dobra sugestia.
Dodam jeszcze bardzo ważną rzecz że nie mam możliwości zmiany wszystkich plików z html na php, gdyż jest za dużo powiązań między plikami i musiałbym zmienić ogromną ilość kodu.

Będę bardzo wdzięczny za jakieś pomysły, pomoc w rozwiązaniu.
szady18
Posty: 9
Dołączył(a): 21.08.2013
Lokalizacja: Kraków

Powrót do HTML i XHTML


 


  • Podobne wątki
    Odpowiedzi
    Wyświetlone
    Ostatni post

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości

Hosting, Domeny, SSL

Subskrypcja

Mamy 51032 zarejestrowanych użytkowników.
Najnowszy użytkownik: JK12


Nasi użytkownicy napisali:

  • 936623 wiadomości
  • w 246937 tematach

Najnowsze wpisy na blogu

Najnowsze artykuły

Najaktywniejsi (ostatnie 30 dni)