1

リダイレクトする前に、コードが「今すぐリダイレクトしています....」というテキストを表示/印刷しないのはなぜですか。リダイレクトにjavascriptまたはhttp_redirect()を使用したくないことに注意してください。

<?php
ob_start();

echo "redirecting now ....";
 sleep(3);    
    header("Location:index.html");
    exit();


ob_end_flush();
?> 
4

4 に答える 4

3

代わりにこれを使用してください

<?php
ob_start();

echo "redirecting now ....";
header("Refresh: 3; index.php");
exit();

ob_end_flush();
?>
于 2013-07-25T08:16:16.170 に答える
2

これを試して

<?php
    echo "redirecting now ....";
    print "<META http-equiv='refresh' content='3;URL=index.html'>";
    exit;
?>
于 2013-07-25T08:14:39.160 に答える
1

そのコンテキスト(IMO)でob_start()を使用する理由は、header()の動作を妨げているヘッダーの前に避けられない出力がある場合です。

それが機能しない理由は、ob_start() がすべての出力をキャプチャーし (この場合は「redirecting now....」をエコーし​​ます)、ob_end_flush() まで出力しないためです。スクリプトが ob_end_flush() に到達する前に、header() を使用してページをリダイレクトしました。

于 2013-07-25T08:15:09.367 に答える