如何用PHP替换字符串中的变量?

如何用PHP替换字符串中的变量?,php,regex,preg-replace,replace,Php,Regex,Preg Replace,Replace,我有一些PHP代码,看起来像: $message = 'Here is the result: %s'; 我只是以%s为例。它基本上是一个占位符,用来表示将要去那里的任何东西。然后我将字符串传递给一个函数,希望该函数用该值替换%s 我需要做什么来实现这一点?我需要执行一些正则表达式,并使用preg_replace()还是什么?或者有更简单的方法吗?试试动态变量: $placeholder = 's'; str_replace("%".$placeholder,$$placeholder,$me

我有一些PHP代码,看起来像:

$message = 'Here is the result: %s';
我只是以%s为例。它基本上是一个占位符,用来表示将要去那里的任何东西。然后我将字符串传递给一个函数,希望该函数用该值替换%s

我需要做什么来实现这一点?我需要执行一些正则表达式,并使用preg_replace()还是什么?或者有更简单的方法吗?

试试动态变量:

$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);
然后%s将替换为$s,您可以使用的变量,其工作方式与C的
printf
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);
我通常在代码中使用它,从 然后,一些text/html文件将$text\u结果作为输出