Доброго времени суток уважаемые читатели блога wooden-stool.ru. Хочу поделиться с вами простеньким PHP скриптом определения тИЦ и PR сайта. Скрипт парсит данные с яндекса, есть простенькая проверка данных, можно писать как с «http://» так и без.
Определяем (проверка) тИЦ и PR сайта на php
Небольшое отступление, что-то часто по статистике LI сюда приходят люди по запросу определения позиций сайта списком, по карте сайта и т.д..специально для таких:
Массовая проверка PR внутренних страниц по карте сайта sitemap.xml
и ещё один линк
Быстрый SEO анализ сайта.
всё, читайте дальше
if ($_GET['domain'])
{
$domain = $_GET['domain'];
$domain = "http://".trim(preg_replace( "#https?://#i", ", $domain));
$xml = file_get_contents("http://bar-navig.yandex.ru/u?ver=2&url=$domain&show=1&post=1");
{
preg_match('//Usi', $xml, $res);
preg_match('//Usi', $xml, $res2);
echo "тИЦ: ".$res[1]." (rank: ".$res2[1].")";
echo "PR: ".getpagerank($domain)."";
...
.....
Дополнение
Выше приведённый скрипт определяет тИЦ и Я.ранк. Яндекс ранк- ничто иное как аналог гуглевского PageRank.
Небольшая табличка, по которой вычесляеться яндекс ранк:
тИЦ до 10 tcy rang=0
тИЦ 10-20 tcy rang=2
тИЦ 30-150 – tcy rang=3
тИЦ 160-600 – tcy rang=4
тИЦ 650-3000 – tcy rang=5
тИЦ 3100-81000 tcy rang=6
Собственно, яндекс ранк и тИЦ это одно и тоже, одно- зависит от другого. Разве что величина измерения другая.
а вот собственно и скрипт определения PR
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 /tbr?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);
}
$pagerank = (strlen($pagerank) > 0) ? $pagerank : -1;
$pagerank = intval($pagerank);
if ($pagerank == -1)
{
$pagerank = 'n/a';
}
return $pagerank;
}
пример вызова проверки PR
echo getpagerank(wooden-stool.ru);
результатом вызова будет текущий PageRank страницы.
Посмотреть код определения PR и тИЦ в рабочих условиях можно на моём сервисе SEO анализа сайта.
на октябрь 2023 все работает. спасибо
Cкрипт-то отличный, но вот толку в нем веб-мастерам немного, он же на клей не проверяет сразу, значит для таких целей не пойдет. А если свой посмотреть, так веб-мастера итак знают
-
gloys Говорит:
03.02.2013 at 5:53 дп
Да, это всего лишь кусок кода демонстрирующий получение тИЦ с pr. Готовый толковый анализатор никто выкладывать естественно не будет : ) про клей я кстати то же писал у себя на блоге, если поискать то можно найти и в сумме с этим скриптом получится то, что вы хотите.
Хороший скрипт! Тока к сожелению у меня ума не хватает его поставить!(
Можно попросить фаил готовый? ссылкай скачать? Если не сложно!)