我編寫了一個腳本來發送html電子郵件,並且一切正常。我把電子郵件存儲在一個單獨的HTML文件中,然後使用while循環和fgets()讀取。不過,我希望能夠將變量傳遞給html。例如,在一個HTML文件,我可能有這樣的事情..將HTML文件讀取到電子郵件中
<body>
Dear Name <br/>
Thank you for your recent purhcase
</body>
和我讀這爲一個字符串,像這樣
$file = fopen($filename, "r");
while(!feof($file)) {
$html.= fgets($file, 4096);
}
fclose ($file);
我希望能夠在HTML取代「名稱」文件由變量和即時通訊不完全確定的最佳方式來做到這一點。我總是可以製作自己的標籤,然後使用正則表達式來替換名稱,只要將該文件讀入字符串,但是我想知道是否有更好/更簡單的方法來執行此操作。
(在一個側面說明,如果有人知道是否它能夠更好地使用的file_get_contents,而不是多次調用與fgets,身份證有興趣知道)
實際上這看起來確實是一種很好的方式。特別是在客戶購買許多產品的情況下,因爲我可以循環訪問html中的數組,而不是循環遍歷它,創建字符串,然後將其替換爲html文件。我沒有完全理解ob__start和ob_end_clean做什麼,它與輸出緩衝區有什麼關係? – cast01 2010-04-06 17:45:50
好吧,我得到了那個工作,它的代碼更少!我不得不首先改變一些東西,'return ob_end_clean'好像只是返回1,所以在include之後,我添加了'$ html = ob_get_contents',然後我做了'ob_end_clean()',然後我返回'$ html' ,它的工作原理,這聽起來合理嗎?這樣做有什麼缺點嗎?它安全/高效嗎?非常感謝! – cast01 2010-04-06 18:07:43
是的,使用ob_get_content()和ob_end_clean()很好。 ob_get_clean()的文檔表明這正是它在內部完成的任務(http://au.php.net/ob_get_clean)。 – 2010-04-06 22:26:56