header()関数を使用して、ファイルをXML標準に変換しています。問題は<?php header("Content-type: text/xml; charset=utf-8")
を使用するときです。 ?>それは<?xml version="1.0"?>
、enconding/charsetなし。間違って使用していますか?
header()
関数は、HTTPヘッダーを変更するだけです。投稿したコードはContent-Type
ヘッダーを設定します。これは、ブラウザーや他のクライアントに、提供するファイルのタイプを通知するために重要です。
あなたが話している<?xml version="1.0"?>
行はドキュメント自体の一部であり、HTTPヘッダーの影響を受けません。
タグは、DOMを使用してXMLドキュメントを作成していることを示しています。 DomDocumentコンストラクターを変更して文字セットも渡す場合は、
$doc = new DomDocument('1.0', 'UTF-8');
その文字セットをXMLドキュメントに出力する必要があります。
header
は、結果にHTTPヘッダーを設定するだけです。 PHPは、値に対して他に何もしないので、適切に使用されていることを確認するのはあなた次第です。
XMLライブラリを使用してXML(プロローグを含む)を生成している場合は、そのライブラリのドキュメントを確認してください。 「手動」でXMLを出力する場合(o、必要な属性をプロローグに追加する必要があります。
あなたも使うことができます
<?php echo '<?xml version"1.0" encoding="UTF-8"?>'; ?>