直到最近,我的LAMP按照我的預期工作,並且使用PHP的header()來根據文檔重定向。不知從何而來,這改變了。問題可以在這裏看到:PHP header()在輸出後被髮送
<html>
<head>
<title> BLAH </title>
</head>
<body>
<p> TEXT </p>
<?php
echo "BLAH BLAH BLAH";
sleep(10);
header("Location: http://example.com");
?>
</body>
</html>
據我所知,重定向不應該發生 - 但它的確如此。我嘗試迴應,添加HTML,等待避免任何可能的競爭條件,都無濟於事。當我訪問這個頁面時,沒有輸出顯示,10秒鐘後我重定向。
因爲大多數人都有完全相反的問題,所以我在網上搜索並不是很幸運,也沒有在服務器日誌中找到任何有用的東西。我沒有做任何配置更改或軟件包更新。我問的人也感到困惑。
我在CentOS虛擬機上運行PHP 5和Apache 2。
P.S .:我的第一個問題,但閱讀這個網站已經幫了我很多次,我只是喜歡它:)。
看起來像輸出緩衝被啓用。檢查你的php.ini – 2010-09-21 07:58:44
是的,拉烏爾說什麼 – 2010-09-21 07:59:52
嘗試一個'flush()'而不是'sleep(10)'。請注意,Internet Explorer在接收1024個字節後開始渲染。 – bouke 2010-09-21 09:00:48