Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Программирование

PHP. Есть ли слово из массива в заданной строке : Программирование

25.04.2024 1:48


26.08.2022 11:47
OlegON
 
Достаточно часто во всяческих цензорах и т.п. требуется искать совпадения по массиву слов.
В поисках решения нашел такой вариант, понравился неординарностью решения, очень шустрый и регистронезависимый, но с ограничением на сами слова, нельзя использовать то, что не может быть индексом массива.

Код:
$GLOBALS['bad_words']= array('truck' => true, 'shot' => true);

function containsBadWord($str){
    $str= trim($str);
    $str= preg_replace('/\s+/', ' ', $str);

    $word_list= explode(" ", $str);
    foreach($word_list as $word){
        if( isset($GLOBALS['bad_words'][$word]) ){
            return true;
        }
    }
    return false;
}

$string = "This dude is a motherTrucker";

if ( !containsBadWord($string) ){
    echo 'BAD';
}
else{
    echo 'NOT BAD';
}
Часовой пояс GMT +3, время: 01:48.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.