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 のどちらが悪いのでしょうか?
- サーバーをアップグレードする必要がありますか? 私はむしろないと思います。