1

嗨,我正在寻找替换通过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.
4

2 回答 2

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

需要是:

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

否则 PHP 会将其解释为变量$SAD。有关单引号和双引号之间区别的解释,请参见这篇文章。

于 2013-01-22T19:14:19.863 回答
3

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

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

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

于 2013-01-22T19:14:29.707 回答