функция для определения PR ?

A
На сайте с 19.02.2008
Offline
94
1520

народ у кого есть рабочая функция или скрипт на php для определения google PR ? поделитесь если не жалко :beer:

- внешниx сервисов не надо

one
На сайте с 15.04.2007
Offline
336
one
#1
Решения для автоматизации действий ( https://www.facebook.com/automationstudio20/ ) в интернете.
nytronix
На сайте с 07.03.2006
Offline
66
#2

2 разные функции на пхп тут есть:

http://www.phpinform.com/

Билеты на концерты в Москве - купить онлайн (http://www.biletgid.ru/)
A
На сайте с 19.02.2008
Offline
94
#3
nytronix:
2 разные функции на пхп тут есть:
http://www.phpinform.com/

что то у меня ваша функция не работает есть еще варианты ?

nytronix
На сайте с 07.03.2006
Offline
66
#4
asker:
что то у меня ваша функция не работает есть еще варианты ?

там две было. проверил - вроде ворк все.

iren K
На сайте с 28.12.2008
Offline
222
#5
asker:
народ у кого есть рабочая функция или скрипт на php для определения google PR ? поделитесь если не жалко 🍻
- внешниx сервисов не надо

<?php

$website = 'http://site.ru/';

//GOOGLE PR START
function StrToNum($Str, $Check, $Magic)
{
$Int32Unit = 4294967296;

$length = strlen($Str);
for ($i = 0; $i < $length; $i++) {
$Check *= $Magic;

if ($Check >= $Int32Unit) {
$Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));

$Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
}
$Check += ord($Str{$i});
}
return $Check;
}
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);
}
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;
}
function getpagerank($url) {

$fp = fsockopen("toolbarqueries.google.com", 80, $errno, $errstr, 30);
if (!$fp) {

} else {
$out = "GET /search?client=navclient-auto&ch=".CheckHash(HashURL($url))
."&features=Rank&q=info:".$url."&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";

fwrite($fp, $out);


while (!feof($fp)) {
$data = fgets($fp, 128);
$pos = strpos($data, "Rank_");
if($pos === false){} else{
$pagerank = substr($data, $pos + 9);

}
}
fclose($fp);

}
return $pagerank;
}
$pr=getpagerank($website);
////GOOGLE PR END
?>
c уважением Iren
E
На сайте с 17.02.2008
Offline
191
#6

Вот сам пользуюсь таким скриптом.

Вызываешь функцию get_pagerank($url)

function get_pagerank($url)

{
$data = new pagerank($url);
return($data->getPageRank());
}

class pagerank
{
var $url;

function pagerank ($url)
{
set_time_limit(0);
$this->url = parse_url('http://' . ereg_replace('^http://', '', $url));
$this->url['full'] = 'http://' . ereg_replace('^http://', '', $url);
}

function getPage ($url)
{
if (function_exists('curl_init'))
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/search?hl=en&q=google&btnG=Google+Search');
return curl_exec($ch);
}
else
{
return file_get_contents($url);
}
}

function getPagerank ()
{
$url = 'info:' . $this->url['host'];
$checksum = $this->checksum($this->strord($url));
$url = "http://www.google.com/search?client=navclient-auto&ch=6$checksum&features=Rank&q=$url";
$data = $this->getPage($url);
preg_match('#Rank_[0-9]:[0-9]:([0-9]+){1,}#si', $data, $p);
$value = ($p[1]) ? $p[1] : 0;
return $value;
}

function toInt ($string)
{
return preg_replace('#[^0-9]#si', '', $string);
}

function to_int_32 (&$x)
{
$z = hexdec(80000000);
$y = (int) $x;
if($y ==- $z && $x <- $z)
{
$y = (int) ((-1) * $x);
$y = (-1) * $y;
}
$x = $y;
}

function zero_fill ($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; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c, 13)));
$b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a << 8));
$c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b, 13)));
$a -= $b; $a -= $c; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c, 12)));
$b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a << 16));
$c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b, 5)));
$a -= $b; $a -= $c; $this->to_int_32($a); $a = (int)($a ^ ($this->zero_fill($c, 3)));
$b -= $c; $b -= $a; $this->to_int_32($b); $b = (int)($b ^ ($a << 10));
$c -= $a; $c -= $b; $this->to_int_32($c); $c = (int)($c ^ ($this->zero_fill($b, 15)));

return array($a,$b,$c);
}

function checksum ($url, $length = null, $init = 0xE6359A60)
{
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 = $this->mix($a, $b, $c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len)
{
case 11: $c += ($url[$k + 10] << 24);
case 10: $c += ($url[$k + 9] << 16);
case 9 : $c += ($url[$k + 8] << 8);
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]);
}
$mix = $this->mix($a, $b, $c);
return $mix[2];
}

function strord ($string)
{
for($i = 0; $i < strlen($string); $i++)
{
$result[$i] = ord($string{$i});
}
return $result;
}
}
Выбираю прокси здесь: https://goo.su/zUub4. Хотите купить и Вы?
D
На сайте с 05.06.2007
Offline
155
#7

iren K, только ваш код работает для всех доменов на пхп5, спасибо!!

Написал не мало шедевров ;)
N
На сайте с 24.10.2007
Offline
20
#8

Может поздно, но присоединяюсь и выражаю огромную благодарность iren K, наконец нашел этот скрипт, уже два дня ищу! Спасибо!

Бойцовские Клубы Украины (http://fightclub.net.ua/) - Движение Бойцовских Клубов на Украине и, в частности, в Киеве

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий