preg match — невозможно удалить символы конца строки в переполнении стека

Я пытаюсь удалить слова проклятия из комментария, введенного пользователем. Слова проклятия читаются из текстового файла,
но проблема в том, что слова, которые я читаю, не соответствуют слову, которое должно быть.
Очевидная проблема — символ EOL (по-видимому), я использовал str_replace, чтобы заменить все символы EOL, но это не повлияло на результат.

Вот мой код:

while(!feof($myfile)){
$array[$i]=fgets($myfile);
$word=$array[$i];
str_replace("\n","",$word,$count);
echo $count;
str_replace("\r","",$word,$cont);
echo $cont;
str_replace("\r\n","",$word,$con);
echo $con;
str_replace(" ","",$word,$co);
echo $co;
str_replace(PHP_EOL,"",$word,$c);
echo $c;
if($word==="anal")
echo "afdsfdsa";
$comment= str_replace($word,"****",$comment);

Я скачал текстовый файл ругательства здесь
Я не могу понять, в чем проблема. Почему два слова не совпадают?

0

Решение

Вот пересмотренный код

$myfile = 'swearWords.txt';
$words=file_get_contents($myfile);
$array = explode(PHP_EOL,$words);
$comment = "f*** this s***";
$comment= str_replace($array,"Bleep",$comment);
echo $comment;

Выход

​ Bleep this Bleep
-2

Другие решения

Чтобы получить каждое слово, почему бы не попробовать:

$file = file_get_contents($myfile);
$words = explode(PHP_EOL, $file);
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector