Замена нескольких строк

Ami

Новичок
Скрипт должен заменять определенные слова в тексте. Слова вытаскиваются из базы, но работает только для последней пары слов. Например, в базе в колонке 'one' слова один два три, а в колонке 'two' one two three и скипт заменяет только три на three. Использовал preg_replace таже фигня. В $text находится текст, который добавляется через форму.
PHP:
$zaa = mysql_query("SELECT * FROM zamena");
while($zam = mysql_fetch_array($zaa)) {

$patterns = array($zam['one']);
$replace = array($zam['two']);

$ing = str_replace($patterns, $replace, $text);
}
Этот код работает в таком варианте:
PHP:
$patterns = array("один","два","три");
$replace = array("one","two","three");

$ing = str_replace($patterns, $replace, $text);
Но такой вариант не подходит, потому что слов может быть много и не удобно их будет редактировать.
Рассматривал вариант с подключением файлов, то там только первое слово заменяет :)
 

Beavis

Banned
Попробуй представить что хранится в переменной $ing после каждой итерации цикла, тогда поймешь в чем ошибка
 
  • Like
Реакции: Ami

Ami

Новичок
Попробуй представить что хранится в переменной $ing после каждой итерации цикла, тогда поймешь в чем ошибка
Хы, как-то я это упустил. Спасибо =) Решил вносить $ing в базу, возможно, решение отстойное, но работает.
 

Beavis

Banned
вот нормальное решение
PHP:
$text = str_replace($patterns, $replace, $text);
вроде же очевидно)
 
  • Like
Реакции: Ami
Сверху