Enquanto desenvolvedores e designers podem debater sobre a importância de diferentes estratégias para a otimização dos mecanismos de busca, uma métrica que simplesmente não pode ser discutida é o PageRank de uma página, ou sua importância em gerar tráfego para o site. Atingir um PageRank melhor foi uma das considerações ao refazermos o design do nosso blog. Podemos discutir como alcançar um PageRank melhor em outra ocasião, mas este artigo irá focar em como você pode recuperar o PageRank de uma página usando uma pequena classe PHP que criei.
O PHP
As funções básicas dentro dessa classe foram criadas por Jamie Scott – todo o crédito das funções básicas vão para ele. Eu simplesmente coloquei a funcionalidade dentro do formato da classe PHP para facilitar o uso e para atualizar o código para que ele fosse um pouco mais transparente. No que diz respeito às classes PHP, esta é bem pequena:
// Declare the class 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 /search?client=navclient-auto&ch=".$this->checkHash($this->createHash($page))."&features=Rank&q=info:".$page."&num=100&filter=0 HTTP/1.1rn"; $out .= "Host: toolbarqueries.google.comrn"; $out .= "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)rn"; $out .= "Connection: Closernrn"; // 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; } } }
$rank = GooglePageRankChecker::getRank("davidwalsh.name"); // returns "5"
O número fornecido representa o PageRank para a URL fornecida! Essa classe PHP pode ser usada sozinha, mas eu criei um script comandado pelo MooTools para recuperar o endereço do PageRank através de um simples AJAX.
O MooTools JavaScript
Este script quick inline do MooTools responde ao clique de um botão, gerando um chamado AJAX para um script PHP que executa a classe fornecida acima:
// When the DOM is ready
window.addEvent("domready",function() {
// When the form is submitted...
var form = document.id("rankForm"), request, display, domain;
form.addEvent("submit",function(e) {
// Stop the event
if(e) e.stop();
// Create request, if not already created
if(!request) {
domain = document.id("domain");
display = document.id("rankerDisplay");
request = new Request({
url: "pagerank-checker.php",
method: "post",
onComplete: function(response) {
display.setStyle("display","block").set("text","Page rank for " + domainValue + " is: " + response);
}
});
}
// Get the value fo the URL
domainValue = domain.get("value");
// Send the request
request.send({ data: { domain: domainValue } });
});
});Texto original em disponível em http://davidwalsh.name/google-pagerank
Fonete: Imasters.com.br
Nenhum comentário :
Postar um comentário