5

PHP Web アプリケーションで XML ファイルを生成しようとしています。

<?php
... 
header('Content-Type: application/xml');
header('Content-Disposition: attachment; filename=test.xml');
echo "<?xml version=\"1.0\"?>\r\n" . 
...

奇妙なことに、私のサーバー (それぞれ PHP バージョン 5.3.8/Apache 2.2.17 および PHP バージョン 5.3.10-1/Apache 2.2.22)を使用すると、出力の先頭に改行 (hex 0a) 文字が挿入され、次のようになります。使用できない無効な XML。これに関するオンラインの質問がもう 1 つありますが、未解決です。

したがって、試してみるecho "bug";と、3 バイトではなく 4 バイトになります。0a 62 75 67

ただし、ローカルで WAMP サーバー (PHP 5.4.3/Apache 2.4.2) を使用すると、次の 3 バイトが返されます62 75 67

  • これは既知のバグ/機能ですか?
  • 構成の問題ですか?
  • Apache と PHP のどちらが悪いのでしょうか?
  • サーバーをアップグレードする必要がありますか? 私はむしろないと思います。
4

4 に答える 4

3

エンコーディングの問題かもしれません。BOM で UTF8 を使用している場合、ファイルの先頭に余分な文字があります。ファイルのエンコーディングを確認し、BOM なしで UTF8 に変換して、この余分な文字を回避してください。

于 2013-03-22T19:33:13.763 に答える
2

私の場合、それは最初の改行でした

ここに画像の説明を入力

于 2019-02-11T14:15:38.297 に答える