Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » вопрос про PageRank
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
w00fer
LOL
Средний рейтинг: 3.67 | Оценок: 18
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Ленинград
Публикаций: 448
Статус: w00fer в оф-лайне
Question вопрос про PageRank [сообщение #80865]

Вот нашел тут скрипт для определения PageRank страницы, но тут небольшой косячок, заключается он в том, что этот скрипт "сам по себе" ничего не выводит, т.е. сначала заполняешь форму (url сайта), жмешь submit, а потом уже он выводит статистику вместе с PageRank... я, блин, пытался от формы его отлучить, -> не получилось... помогите, плиз.

Сам скрипт:

PHP:


<style>
a {font-family:Verdana; font-size:11px; color:#0000FF; text-decoration:none}
p {font-family:verdana; font-size:11px; color:black; text-decoration:none}
td {font-family:verdana; font-size:11px; color:black; text-decoration:none}
tr {font-family:verdana; font-size:11px; color:black; text-decoration:none}
body {font-family:verdana; font-size:11px; color:black; text-decoration:none}
h1 {font-family:verdana; font-size:18px; color:black; font-weight:bold; text-decoration:none}
h2 {font-family:verdana; font-size:15px; color:black; font-weight:bold; text-decoration:none}
</style>
<center>
<h1>Google Page Rank</h1>
<form method="POST">
Enter Web Site: <input name='url' value='<?=$_REQUEST['url']; ?>' size="20"><input type="submit" value="Get My Site Rank">
</form>
<hr>
<?

$website 
= $_REQUEST['url'];
if( 
$website ){
    if( !
strstr($website,"http://") && !strstr($website,"https://") ){
        
$website = "http://".$website;
    }
    
$linkedpages = linkcheck($website,'google');
    
$indexedpages = GoogleLinks($website);
    
    
$pr = GooglePageRank($website);
    
$indexed = $indexedpages[google][0];
    
$links = $linkedpages[google][0];

    
$data = array();
    
$target = trim(eregi_replace('http://', '', $website)); 
    
// checking Google
    
$source = 'http://www.google.com/search?hl=en&lr=&ie=UTF-8&q=link%3A'.$target;
    
$data['Google'] = array(fetch($source, 'of about', 9, 'linking', 'did not match any documents'), $source);
    
// checking MSN Search
    
$source = 'http://search.msn.com/results.aspx?FORM=MSNH&srch_type=0&q=link%3A'.$target;
    
$data['MSN Search'] = array(fetch($source, 'web results1-', 18, 'containing', "couldn't find any sites containing"), $source);
    
// checking Yahoo!
    
$source = 'http://search.yahoo.com/search?p=linkdomain%3A'.$target.'&sm=Yahoo%21+Search&fr=FP-tab-web-t&toggle=1';
    
$data['Yahoo!'] = array(fetch($source, 'of about', 9, 'for', "we didn't find any web pages"), $source);
    
// checking AlltheWeb
    
$source = 'http://www.alltheweb.com/search?cat=web&cs=utf8&q=link%3A'.$target.'&rys=0&_sb_lang=pref';
    
$data['AlltheWeb'] = array(fetch($source, 'audio1 -', 14, 'results', "no web pagesfound that match your query"), $source);
    
// checking AltaVista
    
$source = 'http://www.altavista.com/web/results?itag=wrx&q=linkdomain%3A'.$target.'&kgs=1&kls=0';
    
$data['AltaVista'] = array(fetch($source, 'altavista found', 15, 'results', "we found 0 results"), $source);

?>
    <table width='400' border='0' cellpadding='5' cellspacing='0'>
        <tr>
            <td align='left' colspan='2'><b>Retrieving info for <?=$website?>...</b></td>
        </tr>
        <tr>
            <td><strong>Website</strong></td><td><a href="<?=$website?>"><?=$website?></a></td>
        </tr>
        <tr>
            <td><strong>Page Rank</strong></td><td><?=$pr?> / 10</td>
        </tr>
        <tr>
            <td><strong>Indexed Pages</strong></td><td><a href="<?=$indexedpages[google][1]?>"><?=$indexed?></a></td>
        </tr>
        <tr>
            <td><strong>BackLinks</strong></td><td><a href="<?=$linkedpages[google][1]?>"><?=$links?></a></td>
        </tr>
    </table>
    <hr>
    <table width='400' border='0' cellpadding='5' cellspacing='0'>
        <tr>
            <td align='center' colspan='2'><h2>Link Popularity Report</h2></td>
        </tr>
        <tr>
            <td><strong>Search Engine</strong></td><td align='right'><strong>Indexed Links</strong></td>
        </tr>
        <?
        
foreach($data as $engine => $result) {
        
?>
        <tr>
            <td><a href='<? echo $result[1]; ?>' target='_blank'><? echo $engine; ?></a></td>
            <td align='right'>
            <?
            
if($result[0])
                echo 
$result[0];
            else
                echo 
'Not Available';
            
?>
            </td>
        </tr>
        <?
        $total 
+= ereg_replace("[[<img src="images/smilies/tongue.gif" border="0" alt="">unct:]]", '', $result[0]);
        }
        
?>
        <tr>
            <td><strong>Total</strong></td>
            <td align='right'><strong><? echo $total; ?></strong></td>
        </tr>
    </table>
</center>
<?
}

function 
fetch($source, $start, $smlen, $stop, $fail) {
    
$data = @implode('', @file($source));
    
$data = strip_tags($data);
    
$data = strtolower($data);
    
$data = str_replace("\n", '', $data);
    
$data = str_replace("\r", '', $data);
    
    if(
substr_count($data, $fail)) {
        return 
0;
    } else {
        
$data = substr($data, strpos($data, $start)+$smlen);
        
$data = substr($data, 0, strpos($data, $stop));
        return 
trim($data);
    }
}

function 
linkcheck($url, $engine) {
    global 
$total;
    
$arr = parse_url($url);
    
$url = $arr['host'];
    
$path = "http://www.google.com/search?hl=en&lr=&ie=UTF-8&q=link%3A".$url;
    if(!
file_exists($path)) {
        
$data = strtolower(strip_tags(implode("", file($path))));
        
$data = substr($data, strpos($data, "of about")+9, strlen($data));
        
$data = substr($data, 0, strpos($data, " "));
        if(
eregi("[[:alpha:]]", $data)) {
            
$results[$engine] = array('0', $path);
        } else {
            
$results[$engine] = array($data, $path);
            
$total+=str_replace(',', '', $data);
        }
    } else {
        
$results[$engine] = array('n/a', $path);
    }
    return 
$results;
}
function 
GoogleLinks($url){
    
$arr = parse_url($url);
    
$url = $arr['host'];
    
$engine = 'google';
    
$path = 'http://www.google.com/search?q=inurl:'.$url.'&hl=en&lr=&ie=UTF-8&filter=0';
    if(!
file_exists($path)) {
        
$data = str_replace('&nbsp;', ' ', strtolower(strip_tags(@implode('', @file($path))))); 
        if(!
strpos($data, 'did not match any documents')) {
            
$data = substr($data, strpos($data, 'web results')+12, strlen($data)); 
            
$data = trim(substr($data, 0, strpos($data, 'for'))); //echo $data; // TEST
            
$data = explode(' ', $data);
            
$data = $data[(count($data)-1)];
            
$results[$engine] = array($data, $path);
            
$total+=str_replace(',', '', $data);
        } else {
            
$results[$engine] = array('0', $path);
        }
    } else {
        
$results[$engine] = array('n/a', $path);
    }
    return 
$results;
}

function 
GooglePageRank($url){
    
$arr = parse_url($url);
    
$url = $arr['host'];
    
$url="info:".$url; $ch=GoogleCSum($url,0xE6359A60);
    
$host="toolbarqueries.google.com"; $hostip=gethostbyname($host);
    
$query ="GET /search?client=navclient-auto&ch=6".$ch."&ie=UTF-8&oe=UTF-8&features=Rank&q=".rawurlencode($url)." HTTP/1.0\r\n";
    
$query.="Host: $host\r\n"; $rank=-1;
    
$query.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n";
    
$query.="Connection: Close\r\n\r\n";
    
$fp=fsockopen($hostip,80,$errno,$errstr,30);
    if (
$fp)
    { 
fputs($fp,$query); $data=""; while (!feof($fp)) $data.=fgets($fp,4096); fclose($fp);
    
$data=explode("\n",$data);
    foreach (
$data as $line)
    if (!
is_bool(strpos($line,"Rank_1")))
    { 
$rank=explode(":",trim($line)); $rank=$rank[2]; break; } }
    return 
$rank; 
}

function 
GoogleCSum($s,$key){
    
$v4=$len=strlen($s); $esi=$key; $ebx=$edi=0x9E3779B9; $p=0;
    if (
$len>=12)
    for(
$i=0;$i<floor($len/12);$i++)
    { 
$edi=unsign($edi+ord($s[$p+4])+(ord($s[$p+5]) << 8)+(ord($s[$p+6]) << 16)+(ord($s[$p+7]) << 24));
    
$esi=unsign($esi+ord($s[$p+8])+(ord($s[$p+9]) << 8)+(ord($s[$p+10]) << 16)+(ord($s[$p+11]) << 24));
    
$edx=unsign(($ebx+ord($s[$p+0])+(ord($s[$p+1]) << 8)+(ord($s[$p+2]) << 16)+(ord($s[$p+3]) << 24)-$edi-$esi)^shr($esi,13));
    
$edi=unsign(($edi-$esi-$edx)^($edx << 8));
    
$esi=unsign(($esi-$edx-$edi)^shr($edi,13));
    
$edx=unsign(($edx-$edi-$esi)^shr($esi,12));
    
$edi=unsign(($edi-$esi-$edx)^($edx << 16));
    
$esi=unsign(($esi-$edx-$edi)^shr($edi,5));
    
$edx=unsign(($edx-$edi-$esi)^shr($esi,3)); $ebx=$edx;
    
$edi=unsign(($edi-$esi-$ebx)^($ebx << 10));
    
$esi=unsign(($esi-$ebx-$edi)^shr($edi,15));
    
$v4-=12; $p+=12; }
    
$esi=unsign($esi+$len);
    if (
$v4>=11) $esi=unsign($esi+(ord($s[$p+10]) << 24));
    if (
$v4>=10) $esi=unsign($esi+(ord($s[$p+9]) << 16));
    if (
$v4>=9) $esi=unsign($esi+(ord($s[$p+8]) << 8));
    if (
$v4>=8) $edi=unsign($edi+ord($s[$p+4])+(ord($s[$p+5]) << 8)+(ord($s[$p+6]) << 16)+(ord($s[$p+7]) << 24));
    else
    { if (
$v4>=7) $edi=unsign($edi+(ord($s[$p+6]) << 16));
    if (
$v4>=6) $edi=unsign($edi+(ord($s[$p+5]) << 8));
    if (
$v4>=5) $edi=unsign($edi+ord($s[$p+4])); }
    if (
$v4>=4) $ebx=unsign($ebx+ord($s[$p+0])+(ord($s[$p+1]) << 8)+(ord($s[$p+2]) << 16)+(ord($s[$p+3]) << 24));
    else
    { if (
$v4>=3) $ebx=unsign($ebx+(ord($s[$p+2]) << 16));
    if (
$v4>=2) $ebx=unsign($ebx+(ord($s[$p+1]) << 8));
    if (
$v4>=1) $ebx=unsign($ebx+ord($s[$p+0])); }
    
$ebx=unsign(($ebx-$edi-$esi)^shr($esi,13));
    
$edi=unsign(($edi-$esi-$ebx)^($ebx << 8));
    
$esi=unsign(($esi-$ebx-$edi)^shr($edi,13));
    
$ebx=unsign(($ebx-$edi-$esi)^shr($esi,12));
    
$edi=unsign(($edi-$esi-$ebx)^($ebx << 16));
    
$esi=unsign(($esi-$ebx-$edi)^shr($edi,5));
    
$ebx=unsign(($ebx-$edi-$esi)^shr($esi,3));
    
$edi=unsign(($edi-$esi-$ebx)^($ebx << 10));
    
$esi=unsign(($esi-$ebx-$edi)^shr($edi,15)); return $esi; 
}
function 
shr($x,$y) { 
    
$x=unsign($x); 
    for(
$i=0;$i<$y;$i++) $x=floor($x/2); return $x; 
}
function 
unsign($l) { 
    
$l=intval($l);
    if (
$l>=0){
        return 
$l;
    }else{
        return 
4294967296+$l;
    }
}
?>




Спасибо.

__________________
Чему **censored**, того не миновать

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 04-03-2006 17:45
Нажмите сюда для просмотра профайла w00fer Отправить Персональное сообщение w00fer Посетить домашнию страничку w00fer! Найти сообщения от w00fer Добавить w00fer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #80880]

Вопрос поставлен некорректно, поэтому не совсем понятно что имелось ввиду. Из того что я понял, то для проверки используется переменная $website которой присваивается значение переданное через get или post. Т.е. этой переменной приваиваем нужный нам для проверки урл.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 05-03-2006 00:41
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
w00fer
LOL
Средний рейтинг: 3.67 | Оценок: 18
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Ленинград
Публикаций: 448
Статус: w00fer в оф-лайне
[сообщение #80938]

polo
в том и дело, что не получается, пробовал, убрал форму переменной значение присвоил (т.к. он должен определять только для одного указанного сайта), - > а он, гад, не выводит

__________________
Чему **censored**, того не миновать

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 11-03-2006 09:44
Нажмите сюда для просмотра профайла w00fer Отправить Персональное сообщение w00fer Посетить домашнию страничку w00fer! Найти сообщения от w00fer Добавить w00fer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #80941]

Нет разницы откуда берется url, из формы или грубо присваивается переменной. Проблема может быть в другом, если браузер кидает на невозможно отобразить страницу, то есть траблы с php и вызовом file.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 11-03-2006 11:16
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
w00fer
LOL
Средний рейтинг: 3.67 | Оценок: 18
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2002
Место проживания: Ленинград
Публикаций: 448
Статус: w00fer в оф-лайне
[сообщение #80957]

polo
все, разобрался спасибо.

__________________
Чему **censored**, того не миновать

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 12-03-2006 12:44
Нажмите сюда для просмотра профайла w00fer Отправить Персональное сообщение w00fer Посетить домашнию страничку w00fer! Найти сообщения от w00fer Добавить w00fer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 13:16.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 4.17405796 seconds (99.87% PHP - 0.13% MySQL) with 23 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.