2016-09-08 118 views
2

我试图在通过file_get_contents()获取内容的变量中替换一个字符串。用file_get_contents替换字符串()

$link_yes = "someText"; 
$link_no = "someText"; 
ob_start(); 
$mail_content = file_get_contents($_SERVER['DOCUMENT_ROOT']. $user_file . $mail_file); 
$link1 = array("###Text to replace###"); 
$link2 = array("###Text to replace###"); 
str_replace($link1, $link_yes, $mail_content); 
str_replace($link2, $link_no, $mail_content); 
$mail -> Body = $mail_content; 
ob_end_clean(); 

我试过它没有$ link1和$ link2。所以我直接在替换函数中粘贴字符串。

但它也没有工作。

有人可以帮我吗?

谢谢!

+1

删除'你'$ link1'和'$ link2' array' 。 – Virb

+0

@Virb这不是问题 – RiggsFolly

回答

2

str_replace()返回修改的字符串,并且您不捕获返回的修改值。

而且,除非你有一个以上的东西来替代你没有使用一个数组,尽管这不会是一个错误

$link_yes = "someText"; 
$link_no = "someText"; 

ob_start(); 
$mail_content = file_get_contents($_SERVER['DOCUMENT_ROOT']. $user_file . $mail_file); 

$link1 = "###Text to replace###"; 
$link2 = "###Text to replace###"; 

$mail_content = str_replace($link1, $link_yes, $mail_content); 
$mail_content = str_replace($link2, $link_no, $mail_content); 


$mail -> Body = $mail_content; 

ob_end_clean(); 
+1

好的答案,了解改变变量的函数和不变的函数之间的区别很有用。这被称为“通过引用传递”http://php.net/manual/en/language.references.pass.php。在浏览文档时,可以通过在函数参数前查找符号&符号来确定哪些函数支持此功能。更好地理解通过引用传递对于新兴的PHP开发人员是非常宝贵的! –

+0

哇,什么是noob-fail ^^ .. 对不起..但是谢谢你的快速回答! – Florianb

+0

@Florianb不要恐慌,我会一直这样做,而且你可能会再做一次。刚才希望喜欢我,这将是第一件事发生在你再次发生时。 – RiggsFolly