2

これは、私がこれまで PHP で経験した中で最も奇妙な問題です。

1 ページを除いて、すべてのページは正常に見えます。この問題を最初に見たとき、これは IE とスタイルシートでよくある問題の 1 つだと思いました (このページに特定の CSS ファイルがあります)。問題が本当にこのファイルにあることを確認するためだけに、CSS ファイルを除外しようとしましたが、そうではありませんでした。次に、HTML タグを閉じるのを忘れたと思ったので、コードを何度も調べましたが、すべて正しいようでした。そのため、次のコードをコメントに入れると、ページ自体が正常に動作することに気付くまで、コードをコメントに入れて IE と比較し始めました。

require_once(PATH_INCLUDES . 'adjacency.php');

これは有効なパスであり、ファイルには関数を含むクラスが含まれているだけです。MySQL クエリが失敗した場合、die() 以外の出力はありません。

IE で奇妙に見えるものは次のとおりです。

  • コンテナは通常は中央に配置されていますが、現在は左側にあります。
  • 繰り返し x を使用した背景は、最後まで行きません。
  • メニューのホバー機能が動作しません。

誰?

編集:別のファイルに adjacency.php を含めようとしましたが、同じ問題が発生しました。

4

2 に答える 2

5

推測として、「?>」を閉じた後、インクルード ファイルの末尾にスペースが存在する可能性が最も高いと思われます。(Zend Framework が PHP の終了タグを使用しないことを推奨する理由の 1 つです。)

于 2009-07-30T20:22:31.040 に答える
1

含まれている PHP ファイルは UTF-8 BOM (バイト オーダー マーク) で始まりますか? これは、UTF の自動検出を支援するために Unicode テキスト ファイルの先頭に表示されることがある、目に見えないバイト シーケンスです。残念ながら、PHP はいくぶんナイーブで、インクルードされた PHP ファイルから BOM を読み取るときに BOM をそのまま出力します。私の実験では、IE は 1 つの BOM を処理できますが、BOM が 2 倍になっている場合 (ブラウザーが要求した PHP ファイルとそれぞれに含まれるファイルに BOM が含まれている場合など)、doctype が先頭にあると見なされず、したがって、癖モードがトリガーされます。

エディタが BOM なしで保存するように設定されていることを確認してください。

于 2009-07-30T21:53:24.087 に答える