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

Тема в разделе ".:: Готовые решения", создана пользователем venetu, 15 июл 2008.

Статус темы:
Закрыта.
  1. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    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;
     }
    }

     
  2. B1rdEX

    B1rdEX Постоялец

    Регистр.:
    30 июн 2008
    Сообщения:
    141
    Симпатии:
    26
    in_array будет быстрее работать, проверено.
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    а тут просто сравниваются куски строк, а не целые..
    С целыми in_array() было бы и быстрее, а в данном случае можно разве что замутить через array_walk() - но быстрее не будет. Тоже проверено :)
     
Статус темы:
Закрыта.