Google Page Rank

Тема в разделе "PHP", создана пользователем mrdigy, 11 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    168
    Симпатии:
    21
    Смотрел как устроены скрипты по поределению pr в гугле, там много мудотни пишут, создают не кому не нужны переменные, складывают , вычитают и т.д. Одним словом занимаются запудриванием мозгов !

    Перерыл много всего,может плохо, но всё таки буду рад помоши!

    Так вот кто нибудь видел простой и нужный код определения PR , ведь он должен быть очень простым.
    Спасибо.
     
  2. braindancer

    braindancer Создатель

    Регистр.:
    7 май 2007
    Сообщения:
    46
    Симпатии:
    8
  3. Zircool

    Zircool Создатель

    Регистр.:
    1 июн 2008
    Сообщения:
    35
    Симпатии:
    43
    PHP:

    print('<form method="post">');
    print(
    '</br>' );
    print(
    '<input type="text" name="str" >'."<br />");
    print(
    '</br>' );
    print(
    '<input type="submit" name="sub" value=" &nbsp;&nbsp;  Go! &nbsp;&nbsp; " />'."\r\n");
    print(
    '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
    print(
    '<input type="reset" name="reset" value="   Reset  " />'."<br />\r\n");
    print(
    '</form>');
    print(
    '</br>' );

    function 
    get_contents($url){ /* посылает запрос */
        
    $ch curl_init();

        
    curl_setopt($chCURLOPT_URL$url); /* собственно урл */
        
    curl_setopt($chCURLOPT_HEADERTRUE); /* получать хедер ответа */
        
    curl_setopt($chCURLOPT_NOBODYFALSE); /* получать боди ответа */
        
    curl_setopt($chCURLOPT_RETURNTRANSFERTRUE); /* curl_exec() будет возвращать ответ сервера, а не сразу выводить его в браузер */
        
    curl_setopt($chCURLOPT_USERAGENT"MSIE 7.0"); /* на ваш вкус ^^ . если ничего не указать, icq.search.com отказывается работать... наивный */
        
    curl_setopt($chCURLOPT_TIMEOUT20); /* таймаут в секундах */

        
    $result curl_exec($ch);
        
    curl_close($ch);

        return 
    $result;


    if (isset(
    $_POST['sub']))

                   {

                    
    $url=("www.be1.ru/stat/?url=http%3A%2F%2F".$host."%2F");
                    
    $pr=get_contents($url);
                    
    $pos strpos($pr"Google Page Rank");
                    
    $pr_result=substr($pr,$pos+19,1);
                    
    $pr_result=trim($pr_result);
                    if (
    $pr_result>'4')
                    {
                    
    $pr_result=("<font color=#DA8925>PR=".$pr_result."</font>");
                    }
                    else
                    {
                    
    $pr_result=("PR=".$pr_result);
                        }

                    unset(
    $url);
                    unset(
    $pr);
                    unset(
    $pos);
                    }

    Скрипт просто грабит результат с ресурcа be1.ru
     
  4. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    168
    Симпатии:
    21
    Грабить с других сайтов не очень интересно, это разве что запасной вариант, лучше иметь у себя на сайте скрипт по определению !
     
  5. - jeremy -

    - jeremy - Создатель

    Регистр.:
    24 авг 2008
    Сообщения:
    45
    Симпатии:
    18
    Определять PR умеет только сам Google. Для этого следует учесть все входящие ссылки на сайт с учетом их PR и штрафных фильтров. И пересчитывает PR Google раз в месяц или больше имея кучу специальных серваков. Так что, вычислить самому у вас не получится - ни алгоритма достоверного нет ни доступа к базам Google ни мощностей.
     
  6. mrdigy

    mrdigy

    Регистр.:
    29 дек 2007
    Сообщения:
    168
    Симпатии:
    21
    Это конечно всё понятно, но пр, грубо говоря, просто спрашивается у гугла по датацентрам.
    Меня , да и не только меня, интересует вопрос, какой самы простой код для спроса у гугла ПР.
     
  7. StudioMaX

    StudioMaX Писатель

    Регистр.:
    16 мар 2008
    Сообщения:
    2
    Симпатии:
    0
    Вот работающий скрипт
    PHP:
    <?php

    // Edit this to your website url:
    $myWebSite "http://www.antichat.ru";

    define('GMAG'0xE6359A60);

    //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) {
    $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 
    GCH($url$length=null$init=GMAG) {
    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 
    $c+=($url[$k+8]<<8);
    /* the first byte of c is reserved for the length */
    case $b+=($url[$k+7]<<24);
    case 
    $b+=($url[$k+6]<<16);
    case 
    $b+=($url[$k+5]<<8);
    case 
    $b+=($url[$k+4]);
    case 
    $a+=($url[$k+3]<<24);
    case 
    $a+=($url[$k+2]<<16);
    case 
    $a+=($url[$k+1]<<8);
    case 
    $a+=($url[$k+0]);
    /* case 0: nothing left to add */
    }
    $mix mix($a,$b,$c);
    /*-------------------------------------------- report the result */
    return $mix[2];
    }

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

    function 
    getPR($_url) {
    $url 'info:'.$_url;
    $ch GCH(strord($url));
    $url='info:'.urlencode($_url);
    $pr file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
    $pr_str implode(""$pr);
    return 
    substr($pr_str,strrpos($pr_str":")+1);
    }


    echo 
    "<br>The PR of $myWebsite is: ".getPR($myWebSite);
    ?>
     
  8. judgefog

    judgefog

    Регистр.:
    12 авг 2006
    Сообщения:
    487
    Симпатии:
    335
    а складывать и вычитать - необходимо.
    все эти скрипты притворяются родной гугловой панелькой (гуглбаром)
    и обязаны передавать вычисляемый таким образом хэш
    иначе гугл за своего не примет и отфутболит
     
Статус темы:
Закрыта.