@AriSokol

Почему в такой php конструкции не работает фильтрация стоп-слов?

Объясните пожалуйста - почему вот эта конструкция не работает (запросы со стоп-словами всё равно пишутся в файл)?
stop.txt - список запрещённых слов
poisk.txt - записываются поисковые запросы пользователей

if (isset($_GET['page'])) { 
} 
else { 
	$badWordList = file_get_contents("papka/stop.txt",NULL);
    $badWordArray = explode("\n", $badWordList);
  
	function check_forbidden($forbiddennames, $stringtocheck) 
	{
    foreach ($forbiddennames as $name) {
        if (stripos($stringtocheck, $name) !== FALSE) {
            return true;
        }
    }
	}	
	if(check_forbidden($badWordArray, $query)) {
	} else {
    $fpp = "papkal/poisk.txt";
	$searchlog = ":".$query."\n";
	file_put_contents($fpp, $searchlog, FILE_APPEND);
	}
}
  • Вопрос задан
  • 190 просмотров
Пригласить эксперта
Ответы на вопрос 1
Я считаю, что вам стоит добавить в этой функции
function check_forbidden($forbiddennames, $stringtocheck) 
  {
    foreach ($forbiddennames as $name) {
        if (stripos($stringtocheck, $name) !== FALSE) {
            return true;
        }
    }
  }

return false, чтобы она выглядела вот так:

function check_forbidden($forbiddennames, $stringtocheck) 
  {
    foreach ($forbiddennames as $name) {
        if (stripos($stringtocheck, $name) !== FALSE) {
            return true;
        }
        else return false;
    }
  }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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