Вопрос

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

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

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

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

Это было полезно?

Решение

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

$output = sprintf("Here is the result: %s for this date %s", $result, $date);

Другие советы

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

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

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

$find = array(
     '#name#',
     '#date#'
);
$search = array(
     'someone\'s name',
     date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top