作者anawak (...)
看板PHP
標題[討論] 使用ob_start的目的
時間Fri Jan 3 08:30:44 2014
小弟對 ob_start() 略懂,會使用在會員註冊的流程。
像這樣:
<?php
$username = 'John';
ob_start();
include('registration_email.php');
$content = ob_get_contents();
ob_end_clean();
require_once('../include/package/PHPMailer_5.2.1/class.phpmailer.php');
$mailer = new PHPMailer();
$mailer->MsgHTML("$content");
$mailer->Send()
?>
會員註冊好之後,系統會發通知信到他的信箱。
通知信的內容是 registration_email.php,
<html>
<body>
親愛的 <?php echo $username; ?>, 感謝您的註冊...」
</body>
</html
這樣程式就會把使用姓名帶進去通知信,然後透過 phpmailer 寄信。
上面的例子只是想說明我真的對 ob_start() 略懂。
但是我看到有些經手的網頁,在每一頁開頭都會加。
<?php
session_start();
ob_start();
...
?>
為什麼?
剛剛又看到一篇在講登入登出的功能
http://yiyingloveart.blogspot.tw/2012/12/php.html
文章最後面,作者說的容易出錯點:
「忘記加 ob_start()」
原來沒有加 ob_start() 是個錯誤啊 ~~
讓我想起來之前經手的一個網頁真的是每頁都加 ob_start。
可是我都沒有加耶。
想請教一下,在一般頁面開頭,是否加上 ob_start 的優缺點?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
1F:推 Jerr:某種程度算手動disable error_report? 01/03 08:51
2F:→ MOONRAKER:從來沒用過 只有上次寫long polling的時候碰到ob_系列 01/03 09:55
3F:→ MOONRAKER:又者你這跟直接寫$content=file_get_contents( 01/03 15:23
4F:→ MOONRAKER:'registration_email.php'); 有何差別? 01/03 15:23
剛剛試了一下,有差喔。
通知信的內容有用到變數。
如果用 file_get_contents,變數的內容出不來。
5F:→ MOONRAKER:再replace一下不就好了 何必這麼偷懶 01/03 16:42
6F:→ MOONRAKER:這種事現在我們改用CI的load view解決 01/03 16:43
※ 編輯: anawak 來自: 61.231.92.60 (01/05 22:11)