Задать вопрос
weranda
@weranda

Какая функция поиска подстроки в строке самая быстрая в PHP?

Приветствую
Есть небольшой скрипт блокировки нежелательных роботов-ботов по User-Agent:
// массив нежелательных значений
$bad_agents = array('python', 'alexa', 'baidu',);
// получаем user-agent
$agent = $_SERVER['HTTP_USER_AGENT'];

foreach ($bad_agents as $agent) {
    if( >>> ??? <<< ){
        die();
    }
}


Я в PHP не силен. Подскажите пожалуйста какую конкретно функцию, а именно — самую быструю функцию, проверки наличия нежелательного user-agent использовать и возможно ли улучшить этот код или он и так оптимален?

И еще вопрос в догонку: записывал в файл все значения IP-адресов и user-agent, но некоторые строки user-agent почему-то пусты — почему?
...
138.197.65.234    Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36
45.55.138.142     Netcraft SSL Server Survey - contact info@netcraft.com
91.224.140.214    
212.109.217.105   Needle/1.6.0 (Node.js v6.5.0; linux x64)
138.197.13.157    Python-urllib/2.7
...
  • Вопрос задан
  • 263 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Stalker_RED
@Stalker_RED
php.net/manual/ru/function.strpos.php
foreach ($bad_agents as $bad) {
    if(strpos($agent, $bad) !== false){
        die();
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mxuser
@mxuser
Программист
// массив нежелательных значений
$bad_agents = array('python', 'alexa', 'baidu',);
// получаем user-agent
$agent = $_SERVER['HTTP_USER_AGENT'];

if(in_array($agent, $bad)){
    die();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы