Поэтому у меня есть код 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("mdY") ); $text_result = str_replace($find, $search, $text);
Обычно я использую это для своего кода, получая $ text из некоторых текстовых / html-файлов, а затем создаю $ text_result в качестве вывода
Вы можете использовать sprintf
, который работает очень похоже на printf
и sprintf
.
попробуйте динамические переменные:
$placeholder = 's'; str_replace("%".$placeholder,$$placeholder,$message);
то% s будет заменено на $ s, переменная