所以我有一些PHP代码,看起来像:如何用PHP替换字符串中的变量?
$message = 'Here is the result: %s';
我只是用%S作为一个例子。它基本上是一个占位符,无论什么去那里。然后我将字符串传递给一个函数,我希望该函数用值替换%s。
我需要做些什么才能做到这一点?我需要做一些正则表达式,并使用preg_replace(),或者什么?还是有更简单的方法来做到这一点?
所以我有一些PHP代码,看起来像:如何用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);
尝试动态变量:
$placeholder = 's';
str_replace("%".$placeholder,$$placeholder,$message);
然后%s将与$ S代替,变量
您可以使用sprintf
,这在一个非常相似的方式到C的printf
和sprintf
功能的工作原理。
如果您使用%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作为输出