Добрый день. Вопрос в заголовке. Можно и не с помощью str_replace. То есть, у меня есть некий текст: [hello], меня зовут Леша. Как заменить [hello] на любое случайное слово из списка: привет, добрый день, добрый вечер Спасибо заранее.
Если все таки хочется str_replace PHP: $words = array("привет", "добрый день", "добрый вечер"); str_replace("[hello]", $words[rand(0,count($words)-1)], $str); но так то лучше preg_replace_callback
ещё можно прикрутить сюда https://php.ru/manual/function.array-rand.html для полного счастья PHP: echo str_replace("[hello]", array_rand($words));
Спасибо всем, кто ответил. А как компактно описать замену, если необходимо заменить целый массив слов? Предложение: [hello], [my-name] [name] [hello] - привет, добрый день [my-name] - меня зовут, моё имя [name] - Леша, Катя, Фёкла
Ну почему, сцуко, никто не читает справку по функции?! http://php.net/str_replace --- Добавлено --- За один вызов функции можешь заменить сразу много слов. Только массивы подготовь.