2012-07-27 172 views
1

我是一個嘗試使用PHP構建簡單Web應用程序的新手代碼。我正在嘗試發送一個HTML電子郵件,其中包含每次發送時都會更改的變量。啓動電子郵件的代碼是「email.php」,包含:無法將PHP變量傳遞給file_get_contents()

$body = file_get_contents('welcome/green2.html.php'); 

在該「green2.html.php」文件,我有一個變量,名爲$突出顯示需要填充。 $ highlight變量在'email.php'文件中定義。我曾嘗試在「green2.html.php」文件中添加內容,但未對其進行解析。我得到一個空格,輸出時應該是變量。

另外,我在'email.php'文件中做了一個'welcome/green2.html.php'。當我回顯它時,$ highlight var會顯示在結果頁面上,但如果我回顯$ body,則不會顯示。

任何幫助將不勝感激!

+2

file_get_contents()不執行代碼。它只是在原始字節中淹沒並將它們填充到變量中。也許你正在尋找'include()'和/或(希望不是)'eval()'? – 2012-07-27 19:33:17

回答

5

你試過了str_replace函數嗎? http://php.net/manual/en/function.str-replace.php

在HTML中添加一個佔位符(例如,#名稱代表名稱,#email#代表電子郵件),然後在加載文件內容後使用字符串替換功能。

$bodytag = str_replace("#name#", $name, $myfile);

+1

好主意。這很好! – OrangeTwine 2012-08-07 01:07:47

1

通過file_get_contents()裝入一個文件,將不會導致它被PHP解析。它將簡單地作爲靜態文件加載,無論它是否包含PHP代碼。

如果你想讓它被PHP解析,你需要includerequire它。

但它聽起來像你正試圖爲你的電子郵件寫一個模板系統。如果這是你正在做的事情,你最好不要將它作爲PHP代碼進行解析,而應該在其中使用佔位符標記,然後使用str_replace()或類似的函數將主程序中的變量注入到字符串中。

希望有所幫助。