CanVas
@CanVas
Веб-мастер

Как в php заменить все вхождения по шаблону на массив значений?

Пример: есть шаблон строки
'posts/$s/$s_$s.html';

Делаю замену так:
$tmpstr = preg_replace('/\$s/', $args, $tmpstr);
И если $args - строка или число, то всё ок. Но мне надо что бы $args - было массивом.
т.е. на выходе надо получить
'posts/user/123_456.html'
Передав массив
$args = array ('user',123,456);
Собственно вопрос - как это сделать? Я подозреваю что просто изменив регулярное выражение. А может и функция не та.

Или просто создать массив типа такого: (подчёркиваю "типа")
$pattern = array('/\$s/','/\$s/','/\$s/');
и скормить его вместе с массивом $args - но это как то слишком тупо... и палюбому неэффективно.
  • Вопрос задан
  • 2763 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
$url  = 'posts/%s/%s_%s.html'; 
$args = array ('user',123,456);
echo vsprintf($url, $args);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы