Я пишу простой фильтр ненормативной лексики в PHP. Может ли кто-нибудь сказать мне, почему в следующем коде фильтр работает (он будет печатать [явным]) для массива $ vowels, а не массива $ lines, который я создаю из текстового файла?
function clean($str){ $handle = fopen("badwords.txt", "r"); if ($handle) { while (!feof($handle)) { $array[] = fgets($handle, 4096); } fclose($handle); } $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U"); $filter = "[explicit]"; $clean = str_replace($array, $filter, $str); return $clean; }
При использовании $ vowels вместо $ array он работает, за исключением строчных гласных, которые возвращаются:
[[expl[explicit]c[explicit]t]xpl[explicit]c[explicit]t] instead of [explicit]
Не уверен, почему это происходит.
Есть идеи?
Благодаря!