PHP & databáze

Mac
WD Trader: 4.57/5

Příspěvky: 2236
Registrace: 17.09.2012
Otakar Pěnkava

Administrátor
WD Trader: 4.6/5

Příspěvky: 2707
Registrace: 15.10.2010
To co chceš není jeden řádek, ale celá funkce, kterou zjišťuješ hodnoty ranků. PHP na to nemá žádnou funkci, která by ti přímo dala hodntou ranku, musíš si ji vytvořit.

Mac
WD Trader: 4.57/5

Příspěvky: 2236
Registrace: 17.09.2012
Wladass
Uživatelský avatar
WD Trader: 4.43/5

Příspěvky: 2135
Registrace: 13.09.2011
Jistě, však si stačí stáhnout scripty na zjištění ranků a tam ti to určitě do proměnné uloží.

lookass
WD Trader: 4/5

Příspěvky: 9
Registrace: 02.01.2012
uz nevim kde jsem to vyhrabal, ale porad funguje, mas tam srank i pagerank

Kód: Vybrat vše
<?php

$url = "novinky.cz";
echo "<b>" . $url . "</b><br>";

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;
}
}
}

    $params = array("0", htmlspecialchars($url), 0);
    $request = xmlrpc_encode_request("getRank", $params);
    $context = stream_context_create(array('http' => array('method'=>"POST",'header'=>"Content-Type: text/xml",'content'=>$request)));
    $file = file_get_contents('http://srank.seznam.cz', false, $context);
    $response = xmlrpc_decode($file);
    if ($response['status'] == 200) {
    $srank = (round($response['rank'] / 2.55,0));   
    echo 'srank ' . $srank/10 . ' z 10 (promenna $srank)';
    }

$grank = GooglePageRankChecker::getRank($url); // Replace with your website url
echo "<br>pagerank: " .$grank . ' z 10 (promenna $grank)';
?>

Pro plnohodnotné využívání fóra, vč. psaní příspěvků se musíte registrovat nebo se přihlásit.
Registrovat se nebo Přihlásit se