Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

определение ИЦ и PR ресурса... (wolandino)
Автор Сообщение
wolandino
Заглянувший



Зарегистрирован: 05.08.2005
Сообщ.: 16
Карма: 3
   поощрить/наказать


СообщениеДобавлено: Сб Авг 27, 2005 5:32 pm (написано за 51 секунду)
   Заголовок сообщения: определение ИЦ и PR ресурса...
Ответить с цитатой

Приветствую,
Вопрос может быть и избит... но все же... каким образом можно определить ИЦ и ПР ресурса?
Интересуют теоретические аспекты, а не готовые решения
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Владимир Хоменко
Участник форума



Зарегистрирован: 11.06.2004
Сообщ.: 427
Карма: 40
   поощрить/наказать

Откуда: Николаев, Украина

СообщениеДобавлено: Сб Авг 27, 2005 5:36 pm (спустя 4 минуты; написано за 36 секунд)
   Заголовок сообщения:
Ответить с цитатой

Можно, поподробнее, что такое ИЦ и ПР?

ПР это PR (Page Rank) ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
wolandino
Заглянувший



Зарегистрирован: 05.08.2005
Сообщ.: 16
Карма: 3
   поощрить/наказать


СообщениеДобавлено: Сб Авг 27, 2005 5:39 pm (спустя 3 минуты; написано за 34 секунды)
   Заголовок сообщения:
Ответить с цитатой

ИЦ = Индекс Цитирования Яндекса
ПР = PR = Page Rank
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
deMone
Участник форума



Зарегистрирован: 03.05.2004
Сообщ.: 89
Карма: 6
   поощрить/наказать

Откуда: из России

СообщениеДобавлено: Сб Авг 27, 2005 9:39 pm (спустя 3 часа 59 минут; написано за 1 минуту 41 секунду)
   Заголовок сообщения:
Ответить с цитатой

Индекс Цитирования никак. Ну, почти... Можно выдрать его из страницы http://search.yaca.yandex.ru/yca/cy/ch/WWW.SITE.RU/, но это не так-то просто. Кодов определения Яндекс не выдаёт, да и чтобы как-то определить ИЦ нужно иметь поисковую базу Яндекса, что, естественно, невозможно.

Насчёт ПР -- где-то читал... поищите...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
Mich
Участник форума
Предупреждений: 1


Зарегистрирован: 15.06.2005
Сообщ.: 197
Карма: -3
   поощрить/наказать


СообщениеДобавлено: Сб Авг 27, 2005 10:01 pm (спустя 21 минуту; написано за 19 секунд)
   Заголовок сообщения:
Ответить с цитатой

http://search.cpan.org/author/YKAR/WWW-Google-PageRank-0.10/lib/WWW/Google/PageRank.pm - на Perl.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
wolandino
Заглянувший



Зарегистрирован: 05.08.2005
Сообщ.: 16
Карма: 3
   поощрить/наказать


СообщениеДобавлено: Вс Авг 28, 2005 10:43 am (спустя 12 часов 42 минуты; написано за 2 минуты 16 секунд)
   Заголовок сообщения:
Ответить с цитатой

deMone писал(а):
Индекс Цитирования никак. Ну, почти... Можно выдрать его из страницы
к такому варианту я склонялся... и хотел брать его на вооружение

А вот что скажете по определению PR сайта? Залез в Гугл АПИ - но в данной версии там нет возможности определения ПР... Видел несколько готовых решений, но, как я уже говорил, интересуют теоретические аспекты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
wolandino
Заглянувший



Зарегистрирован: 05.08.2005
Сообщ.: 16
Карма: 3
   поощрить/наказать


СообщениеДобавлено: Вт Авг 30, 2005 12:14 pm (спустя 2 дня 1 час 31 минуту; написано за 17 секунд)
   Заголовок сообщения:
Ответить с цитатой

решение найдено:
Код (php): скопировать код в буфер обмена
<?php

define('GOOGLE_MAGIC', 0xE6359A60);

function zeroFill($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; $a ^= (zeroFill($c,13));
  $b -= $c; $b -= $a; $b ^= ($a<<8);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  $b -= $c; $b -= $a; $b ^= ($a<<16);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));   
  $b -= $c; $b -= $a; $b ^= ($a<<10);
  $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
   
  return array($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
    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 = mix($a,$b,$c);
        $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
        $k += 12;
        $len -= 12;
    }

    $c += $length;
    switch($len)              /* all the case statements fall through */
    {
        case 11: $c+=($url[$k+10]<<24);
        case 10: $c+=($url[$k+9]<<16);
        case 9 : $c+=($url[$k+8]<<8);
          /* the first byte of c is reserved for the length */
        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]);
         /* case 0: nothing left to add */
    }
    $mix = mix($a,$b,$c);
    return $mix[2];
}

function strord($string) {
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}

function getrank($url) {
$url = 'info:'.$url;
$ch = GoogleCH(strord($url));
$file = "http://www.google.com/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url";
$data = file($file);

$rankarray = explode (':', $data[2]);
$rank = $rankarray[2];
return $rank;
}

echo 'PageRank: '.getrank($url);

?>
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 111
   поощрить/наказать

Откуда: Москва

СообщениеДобавлено: Чт Сен 01, 2005 4:36 pm (спустя 2 дня 4 часа 21 минуту; написано за 3 минуты 18 секунд)
   Заголовок сообщения:
Ответить с цитатой

Я с Яндексом делал так:
Код (php): скопировать код в буфер обмена
function getCI($url)
{

        $my_host = parse_url($url);
        $cit_index_url = "http://search.yaca.yandex.ru/yca/cy/ch/{$my_host['path']}/";

        $data = file_get_contents($cit_index_url);

        $upurl = str_replace('.', '\.', $url);
        $upurl = str_replace('/', '\/', $upurl);
               
        $reurl[1] = (strpos($url, 'www') == 0)?'http:\/\/www\.':'http:\/\/';
        $reurl[1] .= $upurl;

        $reurl[2] = (strpos($url, 'www') == 0)?'http:\/\/':'http:\/\/www\.';
        $reurl[2] .= $upurl;

        $reurl[3] = (strpos($url, 'www') == 0)?'www\.'.$upurl:$upurl;

        $reurl[4] = (strpos($url, 'www') == 0)?$upurl:'www\.'.$upurl;

        $reg_www = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[1]}.+?&iserverurl={$reurl[3]}.+?)\".+?>.+?<\/a>/si";
        $reg = "/<a href=\"(http:\/\/www\.yandex\.ru\/yandsearch\/\?text=&Link={$reurl[2]}.+?&iserverurl={$reurl[4]}.+?)\".+?>.+?<\/a>/si";
               
        if(preg_match_all($reg_www, $data, $pockets))
        {
                $to_parse = $pockets[1][0];
        }
        if(preg_match_all($reg, $data, $pockets))
        {
                $to_parse = $pockets[1][0];
        }

        $my = parse_url($to_parse);
        $my = parse_str($my['query'], $out);
               
        return $out['ci'];
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 111
   поощрить/наказать

Откуда: Москва

СообщениеДобавлено: Чт Сен 01, 2005 4:54 pm (спустя 17 минут; написано за 8 секунд)
   Заголовок сообщения:
Ответить с цитатой

wolandino
+1 =))
очень помогло =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
wolandino
Заглянувший



Зарегистрирован: 05.08.2005
Сообщ.: 16
Карма: 3
   поощрить/наказать


СообщениеДобавлено: Пт Сен 02, 2005 7:53 am (спустя 14 часов 59 минут; написано за 18 секунд)
   Заголовок сообщения:
Ответить с цитатой

Константин Жинько [tIT]

Спасибо!

p.s 1:1 :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Nik0
Гость





Карма: 367
   поощрить/наказать


СообщениеДобавлено: Вт Dec 26, 2006 3:00 pm (спустя 1 год 3 месяца 24 дня 7 часов 6 минут; написано за 1 минуту 1 секунду)
   Заголовок сообщения: Google
Ответить с цитатой

что-то не работает запрос к Google... может есть другой способ?
Вернуться к началу
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 111
   поощрить/наказать

Откуда: Москва

СообщениеДобавлено: Вт Dec 26, 2006 7:46 pm (спустя 4 часа 46 минут; написано за 9 секунд)
   Заголовок сообщения:
Ответить с цитатой

Nik0
Найдите.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
pav
Участник форума



Зарегистрирован: 12.03.2003
Сообщ.: 203
Карма: 4
   поощрить/наказать

Откуда: Россия / г.Северодвинск

СообщениеДобавлено: Чт Янв 04, 2007 5:18 pm (спустя 8 дней 21 час 32 минуты; написано за 1 минуту 16 секунд)
   Заголовок сообщения:
Ответить с цитатой

Писал давно. Просто выдрал из расширения к FF код на JS и переписал на php. Оно работает и по сей день.
Код (php): скопировать код в буфер обмена
function zeroFill($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 GPR_toHex8($intega){
        $Ziffer = "0123456789abcdef";
        return $Ziffer[($intega%256)/16].$Ziffer[$intega%16];
}

function GPR_hexEncodeU32($num) {
        $result = GPR_toHex8(zeroFill($num,24));
        $result .= GPR_toHex8(zeroFill($num,16) & 255);
        $result .= GPR_toHex8(zeroFill($num,8) & 255);
        return $result . GPR_toHex8($num & 255);
}


function GPR_awesomeHash($value) {
        $GPR_HASH_SEED = "Mining PageRank is AGAINST GOOGLE'S TERMS OF SERVICE. Yes, I'm talking to you, scammer.";
        $kindOfThingAnIdiotWouldHaveOnHisLuggage = 16909125;
        for($i = 0; $i < strlen($value); $i++ ) {
                $kindOfThingAnIdiotWouldHaveOnHisLuggage ^= ord(substr($GPR_HASH_SEED, $i % strlen($GPR_HASH_SEED),1)) ^ ord(substr($value, $i,1));
                $kindOfThingAnIdiotWouldHaveOnHisLuggage = zeroFill($kindOfThingAnIdiotWouldHaveOnHisLuggage,23) | $kindOfThingAnIdiotWouldHaveOnHisLuggage << 9;
        }
        return '8'.GPR_hexEncodeU32($kindOfThingAnIdiotWouldHaveOnHisLuggage);
}

function getrank($url) {
        $ch = GPR_awesomeHash($url);
        $file = "http://toolbarqueries.google.com/search?client=navclient-auto&features=Rank&ch=$ch&q=info:$url";
        $data = file($file);

        $rankarray = explode (':', $data[2]);
        $rank = $rankarray[2];
        if (!$rank) $rank=0;
        return $rank;
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Зарегистрирован: 12.06.2004
Сообщ.: 2265
Карма: 111
   поощрить/наказать

Откуда: Москва

СообщениеДобавлено: Чт Янв 04, 2007 6:24 pm (спустя 1 час 5 минут; написано за 8 секунд)
   Заголовок сообщения:
Ответить с цитатой

pav
+1
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Ярослав Витязев
Заглянувший



Зарегистрирован: 01.03.2006
Сообщ.: 11
Карма: 1
   поощрить/наказать

Откуда: Иркутск

СообщениеДобавлено: Чт Янв 04, 2007 9:04 pm (спустя 2 часа 39 минут; написано за 2 минуты 7 секунд)
   Заголовок сообщения:
Ответить с цитатой

По поводу тИЦ. Яндекс.Бар получает данные в виде XML, который легко парсится. Насколько я помню там никаких YANDEX_MAGIC'ов не было. :)
Действительно: http://bar-navig.yandex.ru/u?ver=2&url=http://forum.dklab.ru&show=1&post=1
Код (any language): скопировать код в буфер обмена
<urlinfo>
<url domain="forum.dklab.ru">/</url>
<tcy rang="5" value="1700"/>

<topics>
<topic title="Тема: Веб-программирование" url="http://www.yandex.ru/yaca/c280-0-0-0-0=0.html"/>
</topics>
<textinfo>

Тема: Веб-программирование
Источник: Частный</textinfo>
</urlinfo>
Заодно так можно узнать и рубрику в каталоге Яндекса.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Гость






Карма: 367
   поощрить/наказать


СообщениеДобавлено: Ср Янв 10, 2007 3:31 pm (спустя 5 дней 18 часов 27 минут; написано за 1 минуту 10 секунд)
   Заголовок сообщения:
Ответить с цитатой

Ярослав Витязев, спасибо за ссылку, не знал. Позже зарегюсь - поставлю плюс )
pav, Ваш последний код неправильно определяет PR.
Вернуться к началу
pav
Участник форума



Зарегистрирован: 12.03.2003
Сообщ.: 203
Карма: 4
   поощрить/наказать

Откуда: Россия / г.Северодвинск

СообщениеДобавлено: Ср Янв 10, 2007 3:35 pm (спустя 3 минуты; написано за 1 минуту 35 секунд)
   Заголовок сообщения:
Ответить с цитатой

Anonymous писал(а):
pav, Ваш последний код неправильно определяет PR.
На основе чего был сделан этот вывод?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Гость






Карма: 367
   поощрить/наказать


СообщениеДобавлено: Ср Янв 10, 2007 6:02 pm (спустя 2 часа 26 минут; написано за 1 минуту 52 секунды)
   Заголовок сообщения:
Ответить с цитатой

pav, сверял показание кода и тулбара. А также другого скрипта: http://www.tigir.com/scripts/pagerank.php (чьи показания совпадают с показанием тулбара, проводилась очная ставка :) )
Но как я понял тулбар показывает не точные данные, я прав?
При тесте страницы - тулбар и pagerank.php показывали 5, ваш код - 2. Кто прав?
Вернуться к началу
georgi
Гость





Карма: 367
   поощрить/наказать


СообщениеДобавлено: Пт Фев 09, 2007 10:28 pm (спустя 30 дней 4 часа 26 минут; написано за 36 секунд)
   Заголовок сообщения: Вот вам скрипт который получает ИЦ Яндекса
Ответить с цитатой

Вернет вам тиц в цифрах!
Цитата:
<?php

    function getYandexTic($url)
        {
            
            $xml='http://bar-navig.yandex.ru/u?ver=2&lang=1049&url='.$url.'&target=_No__Name:5&show=1&thc=0';
            
            $obj=new DOMDocument();
            
            $obj->load($xml);
            
            $urlinfo=$obj->childNodes;
            foreach ($urlinfo as $url)
            {
                $nodes=$url->childNodes;
                
                foreach ($nodes as $node)
                {
                    
                    
                    if($node->nodeName=='tcy')
                    {
                        
                        $attributes=$node->attributes;
                        foreach ($attributes as $atribut)
                        {
                            
                            if($atribut->name=='value')
                            {
                                $tic=$atribut->value;
                            }
                            
                        }
                    
                    
                }
                
                
                
                        
                    
                    
                }
                
                
            }
            
            return $tic;
        }
?>
Вернуться к началу
modjo
Заглянувший



Зарегистрирован: 11.05.2007
Сообщ.: 1
Карма: -1
   поощрить/наказать

Откуда: Харьков

СообщениеДобавлено: Пт Мая 11, 2007 7:06 pm (спустя 3 месяца 1 день 20 часов 37 минут; написано за 2 минуты 43 секунды)
   Заголовок сообщения:
Ответить с цитатой

А есть ли какой-то сервис чтобы проверить забанен ли домен или нет. В частности Гугл интересует. Потому что бывает вообще не ставишь бэки - оп и через недельку на тебе - PR=2. За что спрашивается? :)
А бывает совсем наоборот - ставишь сотни бэков, регишься в белых каталогах... и хоть бы один бэк был виден! Вообще тишина. Такое ощущение что Гугл переходит, но не обращает внимание. В то же время на Яндексе уже сотни бэков, а в Гугле - 0. Соответственно ПР тоже 0. Хотя где-то проверял ПР - вообще показало -1. Это как понимать? Может это и есть показательно забаненности? Потому что другой нулевой домен проверял - просто 0.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ярослав Витязев
Заглянувший



Зарегистрирован: 01.03.2006
Сообщ.: 11
Карма: 1
   поощрить/наказать

Откуда: Иркутск

СообщениеДобавлено: Пт Мая 11, 2007 7:23 pm (спустя 16 минут; написано за 2 минуты 20 секунд)
   Заголовок сообщения:
Ответить с цитатой

modjo, да, есть такой сервис: http://google.com, вводите в строку запроса site:адресСайта, и, если видите страницы -- значит сайт не забанен.

По поводу остального, включая отрицательный PageRank - почитайте специализированные форумы и документы на сервере компании Google, написанное вами мало коррелирует со здравым смыслом.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
NetWork
Участник форума



Зарегистрирован: 11.05.2007
Сообщ.: 46
Карма: -5
   поощрить/наказать


СообщениеДобавлено: Вс Мая 20, 2007 8:38 pm (спустя 9 дней 1 час 14 минут; написано за 5 секунд)
   Заголовок сообщения:
Ответить с цитатой

Вот так лучше работать я Яндексом
Код (php): скопировать код в буфер обмена
/*-------------------------------------------------------------------------*/
// ФУНКЦИЯ ОПРЕДЕЛЕНИЯ YANDEX тИЦ
/*-------------------------------------------------------------------------*/
/**


function getTCY($url) {
        #считываем XML-файл с данными
        $xml = file_get_contents('http://bar-navig.yandex.ru/u?ver=2&show=32&url='.$url);

        #если XML файл прочитан, то возвращаем значение параметра value, иначе возвращаем тИЦ равен 0
        return $xml ? (int) substr(strstr($xml, 'value="'), 7) : 0;
}
Ещё можно Aport ИЦ посмотреть. Если интересно могу выложить как сделать. Вот у меня только с Google PR проблемы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NetWork
Участник форума



Зарегистрирован: 11.05.2007
Сообщ.: 46
Карма: -5
   поощрить/наказать


СообщениеДобавлено: Вс Мая 20, 2007 8:57 pm (спустя 18 минут; написано за 40 секунд)
   Заголовок сообщения:
Ответить с цитатой

Вот с этим проблема. Но локальном всё нормально, а на серваке PR всегда 0. ЧТо може быть?
Код (php): скопировать код в буфер обмена
/*-------------------------------------------------------------------------*/
// ФУНКЦИЯ ОПРЕДЕЛЕНИЯ PageRank САЙТА НА GOOGLE
/*-------------------------------------------------------------------------*/
/**
* $url = "www.google.com";
* echo "PageRank of ".$url." is:<br />".getrank($url);
*/



define("GOOGLE_MAGIC", 0xE6359A60);        //Define the named constant "GOOGLE_MAGIC"

//unsigned shift right
function zeroFill($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) {        //This function is used in the Google Checksum calculation
    $a -= $b;
    $a -= $c;
    $a ^= (zeroFill($c,13));
    $b -= $c;
    $b -= $a;
    $b ^= ($a<<8);
    $c -= $a;
    $c -= $b;
    $c ^= (zeroFill($b,13));
    $a -= $b;
    $a -= $c;
    $a ^= (zeroFill($c,12));
    $b -= $c;
    $b -= $a;
    $b ^= ($a<<16);
    $c -= $a;
    $c -= $b;
    $c ^= (zeroFill($b,5));
    $a -= $b;
    $a -= $c;
    $a ^= (zeroFill($c,3));
    $b -= $c;
    $b -= $a;
    $b ^= ($a<<10);
    $c -= $a;
    $c -= $b;
    $c ^= (zeroFill($b,15));
    return array($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {        //Calculate the Google Checksum for a given URL
    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 = mix($a,$b,$c);
        $a = $mix[0];
        $b = $mix[1];
        $c = $mix[2];
        $k += 12;
        $len -= 12;
    }
    $c += $length;
    switch($len)            /* all the case statements fall through */
    {
        case 11: $c+=($url[$k+10]<<24);
        case 10: $c+=($url[$k+9]<<16);
        case 9 : $c+=($url[$k+8]<<8);
            /* the first byte of c is reserved for the length */
        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]);
            /* case 0: nothing left to add */
    }
    $mix = mix($a,$b,$c);
    return $mix[2];
}

function strord($string) {        //converts a string into an array of integers containing the numeric value of the char
    for($i=0;$i<strlen($string);$i++) {
        $result[$i] = ord($string{$i});
    }
    return $result;
}

function getrank($url, $prefix="info:", $datacenter="www.google.com") {                //This is the function used to get the PageRank value.
        //If $prefix is "info:", then the Toolbar pagerank will be returned.
        //$datacenter sets the datacenter to get the results from. e.g., "www.google.com", "216.239.53.99", "66.102.11.99".
    $url = $prefix.$url;
    $ch = GoogleCH(strord($url));        //Get the Google checksum for $url using the GoogleCH function.
    $file = "http://$datacenter/search?client=navclient-auto&ch=6$ch&features=Rank&q=$url";
        //To get the Crawl Date instead of the PageRank, change "&features=Rank" to "&features=Crawldate"
        //To get detailed XML results, remove "&features=Rank"
    $oldlevel = error_reporting(0);        //Suppress error reporting temporarily.
    $data = file($file);
    error_reporting($oldlevel);            //Restart error reporting.
    if(!$data || preg_match("/(.*)\.(.*)/i", $url)==0) return "0";            //If the Google data is unavailable, or the URL is invalid, return "N/A".
        //The preg_match check is a very basic url validator that only checks if the URL has a period in it.
    $rankarray = explode (":", $data[2]);        //There are two line breaks before the PageRank data on the Google page.
    $rank = trim($rankarray[2]);        //Trim whitespace and line breaks.
    if($rank=="") return "N/A";            //Return N/A if no rank.
    return $rank;
}

function getrealrank($url, $datacenter="www.google.com"){
        $ch = GoogleCH(strord($url));
        $array = xmltoarray("http://$datacenter/search?client=navclient-auto&ch=6$ch&q=$url");
        $infoarray = $array['GSP'][0]['RES'][0]['R'];
        $nonwwwurl = str_replace("www.", "", $url);
        $urlpermutationsarray = array($url, "http://".$url, "http://www.".$url, $url."/", "http://".$url."/", "http://www.".$url."/", $nonwwwurl, "http://".$nonwwwurl, "http://www.".$nonwwwurl, $nonwwwurl."/", "http://".$nonwwwurl."/", "http://www.".$nonwwwurl."/");
        for($i=0; $i<count($infoarray); $i++){
                $urlU = $infoarray[$i]['U'];        //U is the URL. UE is the 'clean' URL.
                $urlrank = $infoarray[$i]['RK'];
                foreach($urlpermutationsarray as $permutation){
                        if(strtolower($permutation)==strtolower($urlU)) return $urlrank;        //Case insensitive match.
                }
        }
        return "Unknown";        //If no matches found.
}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NetWork
Участник форума



Зарегистрирован: 11.05.2007
Сообщ.: 46
Карма: -5
   поощрить/наказать


СообщениеДобавлено: Вс Мая 27, 2007 9:03 pm (спустя 7 дней 6 минут; написано за 1 минуту 40 секунд)
   Заголовок сообщения:
Ответить с цитатой

Подскажие в чём может быть проблема. При определении Page Rank (функция: топик выше) на локальном всё нормально определяется, а на серваке всегда 0. Ну и как можно исправить, если это возможно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Матвей
Гость





Карма: 367
   поощрить/наказать


СообщениеДобавлено: Пт Окт 26, 2007 5:03 am (спустя 4 месяца 29 дней 7 часов 59 минут; написано за 36 секунд)
   Заголовок сообщения:
Ответить с цитатой

вот тже млин проблема .. куча скриптов перепробывал на локалке нормально, на серваке не работает!
что делать?!
Вернуться к началу
Alx
Заглянувший



Зарегистрирован: 14.03.2006
Сообщ.: 14
Карма: 0
   поощрить/наказать


СообщениеДобавлено: Вс Окт 28, 2007 11:56 am (спустя 2 дня 6 часов 52 минуты; написано за 12 минут 39 секунд)
   Заголовок сообщения:
Ответить с цитатой

NetWork эти страшные скрипты на пхп собственно считают некоторый хеш от имени домена, который потом вставляется в запрос для получения ПР. Тоже столкнулся с проблемой что с моего компа скрипт работает а с сервера нет. Оказалось, как ни странно, правильность работы скрипта зависит от ОС. Например на Win XP работает, на FreeBSD 5.X работает, FreeBSD 6.X нет и т.д. Проблема связана с какими-то тонкостями двоичной математики, в которых разбираться у меня нет желания.

В то же время есть перл-модуль WWW::Google::PageRank, который тоже считает этот хеш, без вышеуказанных капризов.
Мое решение проблемы: перл-скрипт для вычисления хеша (код взят из WWW::Google::PageRank), вызываемый из пхп через system
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
NetWork
Участник форума



Зарегистрирован: 11.05.2007
Сообщ.: 46
Карма: -5
   поощрить/наказать


СообщениеДобавлено: Пт Фев 29, 2008 3:06 pm (спустя 4 месяца 1 день 3 часа 10 минут; написано за 3 минуты 35 секунд)
   Заголовок сообщения:
Ответить с цитатой

Матвей писал(а):
вот тже млин проблема .. куча скриптов перепробывал на локалке нормально, на серваке не работает!
что делать?!
Иногда нужно обратиться к сисадмину.
У меня на серваке стоит запрет на работу со сторонними IP адресами для функций include, file и т.д. Приходиться добавлять доступ для нужных IP и всё нормально.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начaть нoвую тeму   Ответить на тему Часовой пояс: GMT + 3 (Москва)
Страница 1 из 1   
Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать в опросах. Вы не можете прилагать файлы к сообщениям. Вы можете скачивать файлы.
  XML