|
|
|
| Единственная мысль, которая у меня есть, это регистронезависимый поиск в строке user_agent... Но вот поиск чего - понятия не имею. Да и как лучше (надежнее) осуществить этот регистронезависимый поиск? Например substr_count ? Но и проверить-то никак - я же не бот... | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.06.2005 в 05:39)
| | На самом деле, все зависит от того какого бота надо определить. Если это программа-качалка, то в 90% случаев это сделать невозможно. Если же это поисковый робот, то это можно сделать так:
if(substr($HTTP_USER_AGENT,0,6) == "Yandex") $os = 6;
|
Вроде все, если надо для больших поисковых систем пиши, а может я не так что-то понял. Пример из книги "Самоучитель PHP 5". | |
|
|
|
|
|
|
|
для: Ziq
(18.06.2005 в 07:10)
| | Собственно, любых ботов. Раз нельзя качалки, значит пусть хоть поисковики... и какие там еще есть. Яндекс - понятно... остальные - нет. Только мне кажется, что это ненадежное определение... ведь не обязательно Yandex будет написано первыми символами... | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.06.2005 в 13:09)
| | Yandex всегда так пишет. | |
|
|
|
|
|
|
|
для: cheops
(18.06.2005 в 14:30)
| | А как пишут google, yahoo, и msn ? Как их определить? Ведь у них по несколько роботов, как я понял... Как они все называются?
Кстати, и верно ли я понял, что у роботов в начале НЕ Mozilla висит? Mozilla, как я понял - только у людей. | |
|
|
|
|
|
|
|
для: Shorr Kan
(21.06.2005 в 22:28)
| |
<?
if(substr($_SERVER['HTTP_USER_AGENT'], 0, 12) == "StackRambler") $os = 'robot_rambler';
if(substr($_SERVER['HTTP_USER_AGENT'], 0, 9) == "Googlebot") $os = 'robot_google';
if(substr($_SERVER['HTTP_USER_AGENT'], 0, 6) == "Yandex") $os = 'robot_yandex';
if(substr($_SERVER['HTTP_USER_AGENT'], 0, 5) == "Aport") $os = 'robot_aport';
if(substr($_SERVER['HTTP_USER_AGENT'], 0, 6) == "msnbot") $os = 'robot_msnbot';
?>
|
| |
|
|
|
|
|
|
|
для: JIEXA
(21.06.2005 в 22:45)
| | Понятно. Ну а чтоб лишний раз никого не дергать - может где-то есть списочек юзерагентов ботов? | |
|
|
|
|