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

5

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

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

我只是用%s作为一个例子。它基本上是一个占位符,用于放置任何内容。然后我将字符串传递给一个函数,我希望该函数用值替换%s。
我需要做什么才能实现这个目标?我需要做一些正则表达式,并使用preg_replace()或者其他方法吗?还是有更简单的方法可以做到这一点?
5个回答

21

你实际上可以使用sprintf函数,它会返回一个格式化的字符串并将你的变量放置在占位符的位置。
它还可以让你更好地掌控字符串的格式和显示方式。

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

3

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

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

我认为这至少应该可以工作...


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

我通常使用这种方法来编写代码,从一些文本/HTML文件中提取$text,然后将$text_result作为输出。


2
你可以使用sprintf函数, 该函数与C语言中的printfsprintf函数非常相似, 可以按照相似的方式进行使用。

-3

尝试使用动态变量:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接