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

определение ИЦ и PR ресурса... (wolandino)
Author Message
wolandino
Заглянувший



Joined: 05 Aug 2005
Posts: 16
Карма: 3
   поощрить/наказать


PostPosted: Sat Aug 27, 2005 5:32 pm (написано за 51 секунду)
   Post subject: определение ИЦ и PR ресурса...
Reply with quote

Приветствую,
Вопрос может быть и избит... но все же... каким образом можно определить ИЦ и ПР ресурса?
Интересуют теоретические аспекты, а не готовые решения
Back to top
View user's profile Send private message
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 43
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Sat Aug 27, 2005 5:36 pm (спустя 4 минуты; написано за 36 секунд)
   Post subject:
Reply with quote

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

ПР это PR (Page Rank) ?
Back to top
View user's profile Send private message Send e-mail
wolandino
Заглянувший



Joined: 05 Aug 2005
Posts: 16
Карма: 3
   поощрить/наказать


PostPosted: Sat Aug 27, 2005 5:39 pm (спустя 3 минуты; написано за 34 секунды)
   Post subject:
Reply with quote

ИЦ = Индекс Цитирования Яндекса
ПР = PR = Page Rank
Back to top
View user's profile Send private message
deMone
Участник форума



Joined: 03 May 2004
Posts: 90
Карма: 6
   поощрить/наказать

Location: из России

PostPosted: Sat Aug 27, 2005 9:39 pm (спустя 3 часа 59 минут; написано за 1 минуту 41 секунду)
   Post subject:
Reply with quote

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

Насчёт ПР -- где-то читал... поищите...
Back to top
View user's profile Send private message Send e-mail
Mich
Участник форума
Warnings: 1


Joined: 15 Jun 2005
Posts: 197
Карма: -3
   поощрить/наказать


PostPosted: Sat Aug 27, 2005 10:01 pm (спустя 21 минуту; написано за 19 секунд)
   Post subject:
Reply with quote

search.cpan.org/author/YKAR/WWW-Google-PageRank-0.10/lib/WWW/Google/PageRank.pm - на Perl.
Back to top
View user's profile Send private message Send e-mail
wolandino
Заглянувший



Joined: 05 Aug 2005
Posts: 16
Карма: 3
   поощрить/наказать


PostPosted: Sun Aug 28, 2005 10:43 am (спустя 12 часов 42 минуты; написано за 2 минуты 16 секунд)
   Post subject:
Reply with quote

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

А вот что скажете по определению PR сайта? Залез в Гугл АПИ - но в данной версии там нет возможности определения ПР... Видел несколько готовых решений, но, как я уже говорил, интересуют теоретические аспекты.
Back to top
View user's profile Send private message
wolandino
Заглянувший



Joined: 05 Aug 2005
Posts: 16
Карма: 3
   поощрить/наказать


PostPosted: Tue Aug 30, 2005 12:14 pm (спустя 2 дня 1 час 31 минуту; написано за 17 секунд)
   Post subject:
Reply with quote

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

define (www.php.net/define)('GOOGLE_MAGIC', 0xE6359A60);

function zeroFill($a, $b)
{
    $z = hexdec (www.php.net/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 (www.php.net/array)($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
    if(is_null (www.php.net/is_null)($length)) {
        $length = sizeof (www.php.net/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 (www.php.net/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 (www.php.net/file)($file);

$rankarray = explode (www.php.net/explode) (':', $data[2]);
$rank = $rankarray[2];
return $rank;
}

echo (www.php.net/echo) 'PageRank: '.getrank($url);

?>
Back to top
View user's profile Send private message
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 105
   поощрить/наказать

Location: Москва

PostPosted: Thu Sep 01, 2005 4:36 pm (спустя 2 дня 4 часа 21 минуту; написано за 3 минуты 18 секунд)
   Post subject:
Reply with quote

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

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

        $data = file_get_contents (www.php.net/file_get_contents)($cit_index_url);

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

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

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

        $reurl[4] = (strpos (www.php.net/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 (www.php.net/preg_match_all)($reg_www, $data, $pockets))
        {
                $to_parse = $pockets[1][0];
        }
        if(preg_match_all (www.php.net/preg_match_all)($reg, $data, $pockets))
        {
                $to_parse = $pockets[1][0];
        }

        $my = parse_url (www.php.net/parse_url)($to_parse);
        $my = parse_str (www.php.net/parse_str)($my['query'], $out);
               
        return $out['ci'];
}
Back to top
View user's profile Send private message
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 105
   поощрить/наказать

Location: Москва

PostPosted: Thu Sep 01, 2005 4:54 pm (спустя 17 минут; написано за 8 секунд)
   Post subject:
Reply with quote

wolandino
+1 =))
очень помогло =)
Back to top
View user's profile Send private message
wolandino
Заглянувший



Joined: 05 Aug 2005
Posts: 16
Карма: 3
   поощрить/наказать


PostPosted: Fri Sep 02, 2005 7:53 am (спустя 14 часов 59 минут; написано за 18 секунд)
   Post subject:
Reply with quote

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

Спасибо!

p.s 1:1 :)
Back to top
View user's profile Send private message
Nik0
Guest





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


PostPosted: Tue Dec 26, 2006 3:00 pm (спустя 1 год 3 месяца 23 дня 7 часов 6 минут; написано за 1 минуту 1 секунду)
   Post subject: Google
Reply with quote

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



Joined: 12 Jun 2004
Posts: 2264
Карма: 105
   поощрить/наказать

Location: Москва

PostPosted: Tue Dec 26, 2006 7:46 pm (спустя 4 часа 46 минут; написано за 9 секунд)
   Post subject:
Reply with quote

Nik0
Найдите.
Back to top
View user's profile Send private message
pav
Участник форума



Joined: 12 Mar 2003
Posts: 203
Карма: 4
   поощрить/наказать

Location: Россия / г.Северодвинск

PostPosted: Thu Jan 04, 2007 5:18 pm (спустя 8 дней 21 час 32 минуты; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

Писал давно. Просто выдрал из расширения к FF код на JS и переписал на php. Оно работает и по сей день.
Code (php): скопировать код в буфер обмена
function zeroFill($a, $b) {
        $z = hexdec (www.php.net/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 (www.php.net/strlen)($value); $i++ ) {
                $kindOfThingAnIdiotWouldHaveOnHisLuggage ^= ord (www.php.net/ord)(substr (www.php.net/substr)($GPR_HASH_SEED, $i % strlen (www.php.net/strlen)($GPR_HASH_SEED),1)) ^ ord (www.php.net/ord)(substr (www.php.net/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 (www.php.net/file)($file);

        $rankarray = explode (www.php.net/explode) (':', $data[2]);
        $rank = $rankarray[2];
        if (!$rank) $rank=0;
        return $rank;
}
Back to top
View user's profile Send private message Send e-mail
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 105
   поощрить/наказать

Location: Москва

PostPosted: Thu Jan 04, 2007 6:24 pm (спустя 1 час 5 минут; написано за 8 секунд)
   Post subject:
Reply with quote

pav
+1
Back to top
View user's profile Send private message
Ярослав Витязев
Заглянувший



Joined: 01 Mar 2006
Posts: 11
Карма: 1
   поощрить/наказать

Location: Иркутск

PostPosted: Thu Jan 04, 2007 9:04 pm (спустя 2 часа 39 минут; написано за 2 минуты 7 секунд)
   Post subject:
Reply with quote

По поводу тИЦ. Яндекс.Бар получает данные в виде XML, который легко парсится. Насколько я помню там никаких YANDEX_MAGIC'ов не было. :)
Действительно: bar-navig.yandex.ru/u?ver=2&url=http://forum.dklab.ru&show=1&post=1
Code (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>
Заодно так можно узнать и рубрику в каталоге Яндекса.
Back to top
View user's profile Send private message Send e-mail
Guest






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


PostPosted: Wed Jan 10, 2007 3:31 pm (спустя 5 дней 18 часов 27 минут; написано за 1 минуту 10 секунд)
   Post subject:
Reply with quote

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



Joined: 12 Mar 2003
Posts: 203
Карма: 4
   поощрить/наказать

Location: Россия / г.Северодвинск

PostPosted: Wed Jan 10, 2007 3:35 pm (спустя 3 минуты; написано за 1 минуту 35 секунд)
   Post subject:
Reply with quote

Anonymous wrote:
pav, Ваш последний код неправильно определяет PR.
На основе чего был сделан этот вывод?
Back to top
View user's profile Send private message Send e-mail
Guest






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


PostPosted: Wed Jan 10, 2007 6:02 pm (спустя 2 часа 26 минут; написано за 1 минуту 52 секунды)
   Post subject:
Reply with quote

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





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


PostPosted: Fri Feb 09, 2007 10:28 pm (спустя 30 дней 4 часа 26 минут; написано за 36 секунд)
   Post subject: Вот вам скрипт который получает ИЦ Яндекса
Reply with quote

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

    function getYandexTic($url)
        {
            
            $xml='bar-navig.yandex.ru/u?ver=2&lang=1049&url='.$url.'&target=_No__Name:5&show=1&thc=0 (bar-navig.yandex.ru/u?ver=2&lang=1049&url=)';
            
            $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;
        }
?>
Back to top
modjo
Заглянувший



Joined: 11 May 2007
Posts: 1
Карма: -1
   поощрить/наказать

Location: Харьков

PostPosted: Fri May 11, 2007 7:06 pm (спустя 3 месяца 1 день 20 часов 37 минут; написано за 2 минуты 43 секунды)
   Post subject:
Reply with quote

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



Joined: 01 Mar 2006
Posts: 11
Карма: 1
   поощрить/наказать

Location: Иркутск

PostPosted: Fri May 11, 2007 7:23 pm (спустя 16 минут; написано за 2 минуты 20 секунд)
   Post subject:
Reply with quote

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

По поводу остального, включая отрицательный PageRank - почитайте специализированные форумы и документы на сервере компании Google, написанное вами мало коррелирует со здравым смыслом.
Back to top
View user's profile Send private message Send e-mail
NetWork
Участник форума



Joined: 11 May 2007
Posts: 46
Карма: -4
   поощрить/наказать


PostPosted: Sun May 20, 2007 8:38 pm (спустя 9 дней 1 час 14 минут; написано за 5 секунд)
   Post subject:
Reply with quote

Вот так лучше работать я Яндексом
Code (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 проблемы.
Back to top
View user's profile Send private message
NetWork
Участник форума



Joined: 11 May 2007
Posts: 46
Карма: -4
   поощрить/наказать


PostPosted: Sun May 20, 2007 8:57 pm (спустя 18 минут; написано за 40 секунд)
   Post subject:
Reply with quote

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



define (www.php.net/define)("GOOGLE_MAGIC", 0xE6359A60);        //Define the named constant "GOOGLE_MAGIC"

//unsigned shift right
function zeroFill($a, $b) {
    $z = hexdec (www.php.net/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 (www.php.net/array)($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {        //Calculate the Google Checksum for a given URL
    if(is_null (www.php.net/is_null)($length)) {
        $length = sizeof (www.php.net/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 (www.php.net/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 (www.php.net/error_reporting)(0);        //Suppress error reporting temporarily.
    $data = file (www.php.net/file)($file);
    error_reporting (www.php.net/error_reporting)($oldlevel);            //Restart error reporting.
    if(!$data || preg_match (www.php.net/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 (www.php.net/explode) (":", $data[2]);        //There are two line breaks before the PageRank data on the Google page.
    $rank = trim (www.php.net/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.php.net/str_replace)("www.", "", $url);
        $urlpermutationsarray = array (www.php.net/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 (www.php.net/strtolower)($permutation)==strtolower (www.php.net/strtolower)($urlU)) return $urlrank;        //Case insensitive match.
                }
        }
        return "Unknown";        //If no matches found.
}
Back to top
View user's profile Send private message
NetWork
Участник форума



Joined: 11 May 2007
Posts: 46
Карма: -4
   поощрить/наказать


PostPosted: Sun May 27, 2007 9:03 pm (спустя 7 дней 6 минут; написано за 1 минуту 40 секунд)
   Post subject:
Reply with quote

Подскажие в чём может быть проблема. При определении Page Rank (функция: топик выше) на локальном всё нормально определяется, а на серваке всегда 0. Ну и как можно исправить, если это возможно.
Back to top
View user's profile Send private message
Матвей
Guest





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


PostPosted: Fri Oct 26, 2007 5:03 am (спустя 4 месяца 29 дней 7 часов 59 минут; написано за 36 секунд)
   Post subject:
Reply with quote

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



Joined: 14 Mar 2006
Posts: 15
Карма: 0
   поощрить/наказать


PostPosted: Sun Oct 28, 2007 11:56 am (спустя 2 дня 6 часов 52 минуты; написано за 12 минут 39 секунд)
   Post subject:
Reply with quote

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

В то же время есть перл-модуль WWW::Google::PageRank, который тоже считает этот хеш, без вышеуказанных капризов.
Мое решение проблемы: перл-скрипт для вычисления хеша (код взят из WWW::Google::PageRank), вызываемый из пхп через system
Back to top
View user's profile Send private message Send e-mail
NetWork
Участник форума



Joined: 11 May 2007
Posts: 46
Карма: -4
   поощрить/наказать


PostPosted: Fri Feb 29, 2008 3:06 pm (спустя 4 месяца 1 день 3 часа 10 минут; написано за 3 минуты 35 секунд)
   Post subject:
Reply with quote

Матвей wrote:
вот тже млин проблема .. куча скриптов перепробывал на локалке нормально, на серваке не работает!
что делать?!
Иногда нужно обратиться к сисадмину.
У меня на серваке стоит запрет на работу со сторонними IP адресами для функций include, file и т.д. Приходиться добавлять доступ для нужных IP и всё нормально.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML