可以将标题的输出延迟到浏览器,直到整个php脚本完成执行?
答案 0 :(得分:3)
一旦第一段代码从php发送到网络服务器,就会发送标题。
所以你可以在脚本结束之前“不回应任何东西”或use output buffering
来实现同样的目标
答案 1 :(得分:1)
这是大多数专业程序员建议的方式,你应该总是这样做的原因是你可以有效地管理错误和错误页面。
如果您的应用程序已构建为在脚本执行时显示输出,那么我建议您从头开始。
我通常管理输出的方式是使用小模板的系统,模板的系统不需要解析模板等,只需要传递一组数据然后包含所需的模板。
你应该创建一个以$template->set(key[,value = true])
形式接受数据的类,然后创建一个显示如$template->display(filename)
的函数,当这个函数执行时你应该提取变量然后包含模板文件完成之后,再调用exit(0)
,这样就不再执行代码了。
一个简单的模板系统就像这样:
class Template
{
private $_data = array();
public function set($key,$value = true)
{
$this->_data[$key] = $value;
}
public function display($template)
{
//Check template exuists
extract($this->_data);
require_once $template;
exit(0);
}
}
然后使用非常简单:
$template = new Template();
$template->set("title","Practical home Page");
$template->set("header","My Home Page");
$lists = array(
array(
"value" => "list item 1",
"id" => "list_item_1",
"class" => "item"
),
array(
"value" => "list item 2",
"id" => "list_item_2",
"class" => "item"
)
);
$template->set("menu",$lists);
$template->display("templates/homepage.php");
您可能还想阅读我之前回答的以下答案!