Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Отображение последнего захода поискового бота на текущую страницу

Почитывая однажды сайт www.rukv.ru обнаружил в самом низу страницы интересную статистику, а именно время проверки страницы поисковыми ботами. Весьма полезно и удобно анализировать в таком наглядном виде статистику захода поисковых ботов.

Обозначив интерес в разговоре с fof и описав полезность и удобство такого подхода, буквально на следующий день я получил простенький и удобный скрипт, который просто подключается на всех страницах.

Теперь на многих моих сайтах в самом низу выводятся идентификаторы поисковых ботов и время их захода на страницу. Очень интересно наблюдать эти цифры на страницах блога, т.к. после пинга поисковые боты приходят довольно быстро и можно делать ставки какой придет раньше. Конечно на первом месте практически всегда оказывается googlebot, потом приходит Yandex, но в последнее время что-то он стал лениться.

Ниже представлен скрипт, который очень просто реализует такую статистику. К описанным идентификаторам ботов можно достаточно просто добавлять свои. Количество имен поисковых ботов ограничено только размером оперативной памяти. Можно еще более усложнить систему и сохранять не только время последнего захода, но и все заходы за время существования сайта (правда в таком случае лучше использовать MySQL). Информация сохраняется в одном файле, статистика отображается на каждой странице сайта (точнее на тех, в которые вы подключите этот скрипт).


Google:13.05-22:36 Yahoo:26.10-16:02 Msn:03.05-03:14 Yandex:21.05-12:09 Rambler:03.06-08:31 Aport:08.06-01:09


<?php
$logfile 
"botlog.txt";
if (!
file_exists $logfile ) ) {
    
$log = array ( );
    
file_put_contents $logfileserialize $log ) );
    }
else 
$log unserialize file_get_contents $logfile ) );
$uri $_SERVER 'REQUEST_URI' ];
$remap_agents = array (
    
'googlebot' => 'Google',
    
'yahoo' => 'Yahoo',
    
'msnbot' => 'MSN',
    
'yandex' => 'Yandex',
    
'stackrambler' => 'Rambler',
    
'aport' => 'Aport'
    
);

$agent=@$_SERVER 'HTTP_USER_AGENT' ];
if ( 
preg_match('/(googlebot|yahoo|msnbot|yandex|stackrambler|aport)/i',
        
$agent$match ) ) {
    
$match strtolower $match ] );
    
$agent $remap_agents $match ];
    
$date date "d.m-H:i"time ( ) );
    
$log[$uri][$agent] = $date;
    
file_put_contents $logfileserialize $log ) );
    }
printf "Google:%s Yahoo:%s Msn:%s Yandex:%s Rambler:%s Aport:%s",
    @
$log[$uri]['Google'],
    @
$log[$uri]['Yahoo'],
    @
$log[$uri]['MSN'],
    @
$log[$uri]['Yandex'],
    @
$log[$uri]['Rambler'],
    @
$log[$uri]['Aport']
    );
printf "G:%s Y:%s M:%s Y:%s R:%s A:%s",
@
$log[$uri]['Google'],
@
$log[$uri]['Yahoo'],
@
$log[$uri]['MSN'],
@
$log[$uri]['Yandex'],
@
$log[$uri]['Rambler'],
@
$log[$uri]['Aport']
);

/*
function file_put_contents ( $n, $d )
{
$f = @fopen ( $n, "w" );
if ( !$f )
return false;
else
{
fwrite ( $f, $d );
fclose ( $f );
return true;
}
}
*/
?>
Скопировать в буфер

Если вы используете PHP четвертой версии, а не пятой, то вам будет нужна функция file_put_contents, которая в данном примере закрыта комментариями, раскомментируйте ее.


Автор скрипта Бедарев Егор. Оригинал статьи: http://bechtold.biz/

© Copyright 2008-2012 by KDG