2011-08-10 3 views
4

(PHP 5.3.6)PHPは、私は単純にこのテキストが含まれているPHPファイルを持っている原因不要な改行

が含まれます(どこにもいない余分な空白で、再び)は次のようになりました別のphpファイルからこれを含めて:私は以下の結果を得

<div style="border:1px solid red"><?php include "abc.php" ?></div> 
<br /> 
<div style="border:1px solid red"><div style="border:1px solid green">abc</div></div> 

第2の方法は、単に直接含めコンテンツを使用することに注意してください。これらは両方とも下位のものでなければなりませんが、あなたが見ることができるように、含まれているファイルの内容の前にいくつかの種類の改行が挿入されます。

ページのこのセクションでは、Chromeの要素インスペクタに示されているenter image description here

、があるようです:私は(Chromeのソースを表示経由)出力ソースを確認したときにそこに目に見えるものは何もありませんので、私は「奇妙」を言いますそこに何かが、まさにそれは私が言うことができないです。

enter image description here

をしている単に空の文字列のように見えるが、なぜ空の文字列が改行を引き起こすとなぜそれが最初の場所に存在することになります謎。 includeステートメントの末尾にセミコロンを追加しても違いはありません。それは、nullバイトまたは13(CR)かもしれないが、それでもHTML改行を引き起こさないはずです。

この不要な改行を取り除く方法を知っている人はいますか?

答えて

14

付属のabc.phpのエンコーディングを確認してください - それはバイトオーダーマーク(BOM)ですか?そうであれば、それを削除してください(良いコードエディタでは保存ダイアログでファイルのエンコーディングを変更できます)、それが原因かもしれません。

+3

mmmm ....あなたはphpをよく知っています。ありがとう! – iforce2d

+0

ありがとうございました!!!!そのBOMの事はとても悪です... –

0

ツリーがフォーマットされているので、Chromeのインスペクタで未加工の出力を確認することはお勧めできません。 ソースを表示はやや良いです。

おそらくinclude()に関連していない可能性があります。最初のステップは、含まれているファイルを16進エディタで開き、が本当にであるかどうかを確認することです。 Jens Rolandが指摘しているように、例えばBOMを含むことができます。ほとんどのテキストエディタでは非表示になります。

また、このコードで生abc.phpファイルを生成し、それに対するあなたのコードをテストすることができます。

file_put_contents('abc.php', 'abc'); 
+1

はい、BOMが問題でした。レコードのために、私はメモ帳++を "BOMなしでUTF-8でエンコード"として保存するために使用しました。 – iforce2d

0

私は同じ問題にありました。エディターで問題が見つかりました。付属のファイルを編集して、メモ帳やテキストエディタで保存してください。変更が表示されます。

関連する問題