str_replace函数替换占位符

时间:2017-02-01 11:55:33

标签: php

我已将以下字符串从数据库加载到$ message中。

Hi,\n\nYou have a new voicemail message from ${VM_CIDNAME} (${VM_CIDNUM}), on ${VM_DATE}.\n\nThank you for using 123 Solutions.

我试图使用真实数据str_replace该字符串中的占位符,但由于PHP正在解释$ {VM_CIDNAME},因此它不会执行替换。

$message = str_replace("${VM_CIDNUM}", $CallerID , $message);

如何替换占位符?

注意:更改占位符的格式不是一种选择,因为它已硬编码到第三方软件中,我无法更改。

我还需要str_replace" \ n"换行符。

非常感谢

3 个答案:

答案 0 :(得分:2)

尝试使用单引号(')

$message = str_replace('${VM_CIDNUM}', $CallerID , $message);

并替换“\ n”使用nl2br()PHP函数作为

$message = nl2br($message);

答案 1 :(得分:1)

您必须使用单引号(')

$message = str_replace('${VM_CIDNUM}', $CallerID , $message);

答案 2 :(得分:0)

简单。

/* SET string variables before set $message */

$VM_CIDNAME = $CallerNAME; /* Your CallerNAME variable */
$VM_CIDNUM = $CallerID; /* Your CallerID variable */
$VM_DATE = $CallerDATE; /* Your CallerDATE variable */

/* then */
 $message = "Hi,\n\nYou have a new voicemail message from ${VM_CIDNAME} (${VM_CIDNUM}), on ${VM_DATE}.\n\nThank you for using 123 Solutions.";
 $message = nl2br($message);

<强>更新

$VM_CIDNAME = 'John';
$VM_CIDNUM = '1234';
$VM_DATE = '2017-01-01';
$dbRes = $mailboxinfo['emailbody'];
$ev = '$message = "' . $dbRes . '";';
eval($ev);
$message = nl2br($message);

无需替换