Проблема с простым фильтром профанации PHP

Я пишу простой фильтр ненормативной лексики в 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] 

Не уверен, почему это происходит.

Есть идеи?

Благодаря!

Solutions Collecting From Web of "Проблема с простым фильтром профанации PHP"