5

所以我有一些看起来像这样的PHP代码:

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

我只是以 %s 为例。它基本上是任何内容的占位符。然后我将字符串传递给一个函数,我希望该函数将 %s 替换为该值。

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

4

5 回答 5

21

您实际上可以使用sprintf函数,该函数将返回格式化的字符串并将变量放在占位符的位置。
它还为您提供了如何格式化和显示字符串的强大权力。

$output = sprintf("Here is the result: %s for this date %s", $result, $date);
于 2009-05-06T08:48:12.797 回答
3

如果您使用%s,我认为这与 printf 用于字符串的占位符相同。所以你可以这样做:

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

认为这至少应该工作......

于 2009-05-06T08:48:52.747 回答
3
$find = array(
     '#name#',
     '#date#'
);
$search = array(
     'someone\'s name',
     date("m-d-Y")
);
$text_result = str_replace($find, $search, $text);

我通常将它用于我的代码,从一些 text/html 文件中获取 $text 然后将 $text_result 作为输出

于 2009-05-07T01:42:06.463 回答
2

您可以使用sprintf,它的工作方式与 Cprintfsprintf函数非常相似。

于 2009-05-06T08:48:04.247 回答
-3

尝试动态变量:

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

然后 %s 将被替换为 $s,变量

于 2009-05-06T08:44:33.787 回答