2012-01-13 10 views
4

PHPでXMLファイルを作成しようとすると、私は奇妙な問題を抱えています。問題は、ソースコードの最後に奇妙な疑問符が現れることです。そして、私はエラーを取得する:「エクストラコンテンツを文書の末尾に」ドキュメントの末尾に追加された内容PHPとXML

を、私はこのスクリプトを実行している:

<?php 
header("Content-Type: application/xml"); 
echo "<?xml version=\"1.0\"?>"; 
?> 

<Module> 
     <ModulePrefs title="Ngram Extractor" 
     author="interedition team" 
     description="Ngram Extractor" 
     scrolling="true"/> 
     <Content type="html"> 
     Test 
     </Content> 
</Module>​ 

私は、これはブラウザで開くと、私は状態エラーとソースを取得しますコードは次のようになります。最後に奇妙な疑問符があることに注目してください。

<?xml version="1.0"?> 
<Module> 
     <ModulePrefs title="Ngram Extractor" 
     author="interedition team" 
     description="Ngram Extractor" 
     scrolling="true"/> 
     <Content type="html"> 
     Test 
     </Content> 
</Module>? 

助けてください。

+0

あなたのコードのどこかにある偽のエコータグ –

+1

奇妙な文字は、おそらくソースファイルの最後に存在するか、ソースファイルのXMLを終了していないために生成されています改行。 –

+0

改行を使用してXMLを終了するにはどうすればよいですか? – Jeff

答えて

7

UTF-8コードE2 80 8Bのファイル末尾に、文字の幅がありません。です。それは</Module>の直後に置かれます。あなたのファイルを16進モードで見てみましょう。 この余分な文字は、ブラウザがこれを有効なXMLとして認識しないようにします。使用中のブラウザによっては、疑問符として表示されるか、まったく表示されません。

余分な文字を削除しても問題ありません。

0

BOMエンコーディングでUTF-8を使用することができます。それを確認してください

+1

どうすれば確認できますか? – Jeff

+1

@ Jeffあなたはnotepad ++ editorでそれをチェックすることができます。メインメニューの "エンコーディング" –

0

私は本当に答えはありません、私のエディタが疑問符を表示していない受け入れます。しかし、私はnotepad2でファイルを開きました。そして、見てください、疑問符がそこにありました。非常に奇妙な。ご協力いただきありがとうございます。

+0

上記の私の回答にあるとおり、この疑問符は見えないUTF-8文字です。 StackOverflowでコードのコピーを作成しましたが、HTMLコードビューでさえ見ることはできません。しかし、Hexエディタにコピーすると、コードの最後にUTF-8コードE2 80 8Bが表示されます。 – Jpsy