Определение известных поисковых роботов

Статус
В этой теме нельзя размещать новые ответы.

venetu

Мой дом здесь!
Регистрация
28 Мар 2007
Сообщения
745
Реакции
273
PHP:
function isBot() {
        
 if ($_SERVER['REMOTE_ADDR'] === '66.249.65.39') {
            return true;
 } else {
            
            $bots = array('googlebot', 
'mediapartners', 'yahooysmcm', 
'baiduspider', 'msnbot', 'slurp', 
'ask', 'teoma', 'spider', 'heritrix', 
'attentio', 'twiceler', 'irlbot', 
'fast crawler', 'fastmobilecrawl', 
'jumpbot', 'googlebot-mobile', 
'yahooseeker', 'motionbot', 
'mediobot', 'chtml generic', 
'nokia6230i/. fast crawler');
            

$browser = strtolower($_SERVER['HTTP_USER_AGENT']);
            
   foreach ($bots as $bot) {
                if (strpos($browser, $bot) !== false) {
                    return true;
                }
   }
            
    return false;
 }
}
 
in_array будет быстрее работать, проверено.
 
а тут просто сравниваются куски строк, а не целые..
С целыми in_array() было бы и быстрее, а в данном случае можно разве что замутить через array_walk() - но быстрее не будет. Тоже проверено :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху