FirefoxでPHPが二重実行
カテゴリー:Linux
ブラウザ上に出力するテキストが大量にあるPHPを実行していると、想定していたよりかなり時間が、かかるという問題を調べていた。
なお調べている途中で、PHPファイル内部に以下のような記述をしてPHPファイルが実行されたときの時間をログに出力するようにしていた。
<?php exec("echo 'date:".date("H:i:s")."' >> log"); ?>
そこでブラウザからファイルに1度アクセスしてログを確認してみると、実行ログが2回分はいっていた。
つまり、1度のアクセスにつきPHPが2回実行されているようだ。
この問題について調べてみた。
環境
- クライアント
- Firefox/2.0.0.11
- Windows Vista
- サーバ
- PHP Version 4.3.9
ここで、他のブラウザ、環境で試すと再現しないことから、クライアント側のhtmlファイルの解釈によって問題がおきるかどうかが変わっていることがわかった。
そこでサーバ側のPHPファイルを見直してみるとデバッグ用の出力をhtml開始タグの記述前の箇所で行っていたためデバッグ用の出力をhtmlのbody内部に出力するようにさせたところ二重実行はされなくなった。