Как заменить переменную в строке на PHP? - PullRequest
5 голосов
/ 06 мая 2009

Итак, у меня есть код PHP, который выглядит следующим образом:

$message = 'Here is the result: %s';

Я просто использовал% s в качестве примера. Это в основном заполнитель для всего, что пойдет туда. Затем я передаю строку в функцию и хочу, чтобы эта функция заменила% s значением.

Что мне нужно сделать, чтобы достичь этого? Нужно ли мне сделать регулярное выражение и использовать preg_replace () или что-то еще? или есть более простой способ сделать это?

Ответы [ 5 ]

21 голосов
/ 06 мая 2009

На самом деле вы можете использовать функцию sprintf , которая будет возвращать отформатированную строку и поместит ваши переменные на место заполнителей.
Это также дает вам большие возможности по форматированию и отображению вашей строки.

$output = sprintf("Here is the result: %s for this date %s", $result, $date);
3 голосов
/ 07 мая 2009
$find = array(
     '#name#',
     '#date#'
);
$search = array(
     'someone\'s name',
     date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);

Я обычно использую это для своего кода, выбирая текст $ из некоторые текстовые / html-файлы затем выводят $ text_result в качестве результата

3 голосов
/ 06 мая 2009

Если вы используете %s, я думаю, что это тот же заполнитель, который printf использует для строки. Так что вы могли бы сделать:

$text = sprintf($message, "replacement text");

Думаю, это должно работать по крайней мере ...

2 голосов
/ 06 мая 2009

Вы можете использовать sprintf, который работает очень похоже на функции C printf и sprintf.

0 голосов
/ 06 мая 2009

попробуйте динамические переменные:

$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);

тогда% s будет заменен на $ s, переменная

...