Я пытаюсь удалить слова проклятия из комментария, введенного пользователем. Слова проклятия читаются из текстового файла,
но проблема в том, что слова, которые я читаю, не соответствуют слову, которое должно быть.
Очевидная проблема — символ 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);
Я скачал текстовый файл ругательства здесь
Я не могу понять, в чем проблема. Почему два слова не совпадают?
Вот пересмотренный код
$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
Чтобы получить каждое слово, почему бы не попробовать:
$file = file_get_contents($myfile);
$words = explode(PHP_EOL, $file);