使用file_get_contents后PHP替换字符串

时间:2013-01-22 19:05:43

标签: php preg-replace file-get-contents str-replace

您好我希望通过 file_get_contents

替换我正在加载的html电子邮件中的字词

这是我的代码:

<?

$message = file_get_contents("http://www.MYwebsiteExample.com/EmailConfirmation.php");


$message =  preg_replace('/SAD/', "HAPPY", $message);
// Also tried this below and it does not work either
 $message = str_replace('/SAD/', "HAPPY", $message);

?>

我希望找到SAD的所有模式(区分大小写)并用HAPPY替换它们。出于某种原因,如果我使用 file_get_contents ,它似乎无法正常工作。

由于

更新日期:2013年1月22日

实际上,抱歉当我添加$时更正不起作用。它对我的代码不是必需的。我可以解决这个问题,但这不起作用:

$message = str_replace("$SAD", "HAPPY", $message); /// does not work. Not sure why
$message = str_replace("SAD", "HAPPY", $message); /// without the $ it does work.

2 个答案:

答案 0 :(得分:7)

$message = str_replace("$SAD", "HAPPY", $message);

需要:

$message = str_replace('$SAD', "HAPPY", $message);

否则PHP会将其解释为变量$SAD。有关单引号和双引号之间差异的说明,请参阅此post

答案 1 :(得分:3)

你不应该使用正则表达式;这是简单的字符串替换:

$message = strtr($message, array(
    '$SAD' => 'HAPPY',
));

顺便说一句,如果您使用"$SAD"作为搜索字符串,PHP将尝试评估一个名为$SAD的变量,该变量不存在,如果error_reporting是{{3}},则会发出通知配置为显示它。