PHP在使用file\u get\u内容后替换字符串

PHP在使用file\u get\u内容后替换字符串,php,preg-replace,file-get-contents,str-replace,Php,Preg Replace,File Get Contents,Str Replace,您好,我正在寻找替换通过文件获取内容加载的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 $mes

您好,我正在寻找替换通过文件获取内容加载的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);

?>
需要:

$message = str_replace('$SAD', "HAPPY", $message);
否则PHP将把它解释为变量
$SAD
。有关单引号和双引号之间差异的解释,请参见此

需要:

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

否则PHP将把它解释为变量
$SAD
。有关单引号和双引号之间区别的解释,请参见此部分。

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

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

顺便说一句,如果您使用
“$SAD”
作为搜索字符串,PHP将尝试计算一个名为
$SAD
的变量,该变量不存在,如果配置为显示它,则会抛出一个通知。

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

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


顺便说一句,如果您使用
“$SAD”
作为搜索字符串,PHP将尝试计算一个名为
$SAD
的变量,该变量不存在,如果配置为显示它,则会抛出一个通知。

什么是“它似乎不起作用”呢?你有错误吗?意外结果?什么是
var\u转储($message)输出?你甚至可能得不到任何结果。可能设置为关闭。好的,我做了更新。这对美元不起作用,也不知道为什么。我的代码不需要这样做,只是想知道为什么不需要。你正在拉入的文件是一个HTML文件,实际上可能在任何地方都没有文字上的“SAD”。例如,可能存在SAD
。如果是这种情况,您需要一个不同的regexp,或者更好地使用DOM操作。此外,您最好使用显式PHP标记-
什么是“它似乎不起作用”呢?你有错误吗?意外结果?什么是
var\u转储($message)输出?你甚至可能得不到任何结果。可能设置为关闭。好的,我做了更新。这对美元不起作用,也不知道为什么。我的代码不需要这样做,只是想知道为什么不需要。你正在拉入的文件是一个HTML文件,实际上可能在任何地方都没有文字上的“SAD”。例如,可能存在SAD
。如果是这种情况,您将需要一个不同的regexp,或者更好地使用DOM操作?不太清楚为什么那个美元符号在里面…你明白了。成功了。如果允许的话,我会把答案标记为正确。你太棒了。非常感谢你@lserni我认为OP试图替换一个文件中的模板变量,而这个文件恰好具有PHP变量的格式。应该使用一个模板变量,例如
%{SAD}
。谢谢S&B!我是说“神秘的”。S&B=聪明漂亮。:)非常感谢!或者可能只是
$message=str_replace('SAD','HAPPY',$message)?不太清楚为什么那个美元符号在里面…你明白了。成功了。如果允许的话,我会把答案标记为正确。你太棒了。非常感谢你@lserni我认为OP试图替换一个文件中的模板变量,而这个文件恰好具有PHP变量的格式。应该使用一个模板变量,例如
%{SAD}
。谢谢S&B!我是说“神秘的”。S&B=聪明漂亮。:)非常感谢!杰克,你的回答也很有效。非常感谢。与字符串替换相比,使用正则表达式的缺点是什么?@PapaDeBeau正则表达式功能更强大,但占用更多资源,执行速度也可能较慢。除此之外,编程就是要培养一种使事情尽可能简单的技巧:)@jack我倾向于用你陈述的第二部分作为对我公司的要求D@Lightningsoul试试看:)你的答案也很有效@Jack。非常感谢。与字符串替换相比,使用正则表达式的缺点是什么?@PapaDeBeau正则表达式功能更强大,但占用更多资源,执行速度也可能较慢。除此之外,编程就是要培养一种使事情尽可能简单的技巧:)@jack我倾向于用你陈述的第二部分作为对我公司的要求D@Lightningsoul去做吧:)