php str_replace array не работает из вывода с sql
Пришло время удалить маты из заголовков, но столкнулся с проблемой!
Делаю по простому: одну запись в базе id-1
и text
куда и сохраняю плохие слова через запятую. Называю таблицу maty
Далее уже на выводе к каждому слову добавляю кавычки и делаю строку:
$sqlmaty = $conn->query("SELECT * FROM maty WHERE id='1'");
$rowmaty = $sqlmaty->fetch(PDO::FETCH_ASSOC);
$words = explode(",", $rowmaty['text']);
$quoted_words = array_map(function($word) {
return '"'.$word .'"';
}, $words);
$badWords = implode(",", $quoted_words);
Далее массив уже готовых слов с кавычками через запятую + str_replace
$badWords2 = array($badWords);
$title = str_replace($badWords2, " ", "оригинальный заголвоок");
В итоге: в базе символы хранятся без изменений (ЮТФ-8 без экранирования и тд)
В таком виде $badWords2 = array($badWords); не работает замена
А в таком $badWords2 = array(слова из базы в таком виде "слово","слово","слово","слово","слово"); - работает
Хотя $badWords
и есть слова "слово","слово","слово","слово","слово"
Я уже всё что мог, перепробовал. Где я ошибся?