2016-09-08 149 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