2017-02-17 2 views
0

loadHTMLFile()を使用してhtmlファイルをロードしようとしていますが、正しく動作しません。毎回このテキストを追加します。PHPでloadHtmlFile()を正しく使用するには?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> 

いつでも私はこのコードを実行するテキストが

$dom = new DOMDocument; 
$dom->loadHTMLFile('file.html'); 
$content = html_entity_decode($dom->saveXML()); 
$n = file_put_contents($file, $content) or die('file not found'); // write the contents back to the file 
echo html_entity_decode($dom->saveXML()); 

を追加している私の目的は、ドキュメントをロードするいくつかの変更を加えた後、2コード行せずに、それを保存することです。何が間違っているのですか?

+0

あなたは私の "file.html" の場所を教えていただけますか?あなたのファイルの絶対パスを試してください。より多くのエラー情報/トレースを提供してください。 –

+0

私はDOMDocumentクラスに慣れていませんが、これと何か関係があります: '$ dom-> saveXML()'です。とにかく、なぜそれは問題ですか? ''タグは、特にそこにあるはずです。 – alanlittle

答えて

0

追加される既定のDOCTYPEを防止する追加のLIBXML_HTML_NODEFDTDオプションを使用してロードものがが見つからない(PHPのようなのLibxml> = 2.7.8で使用可能> = 5.4.0)及びsaveHTML()又はC14N()代わりのいずれかを使用XML宣言を避けるためにsaveXML()

例えば:

$dom = new DOMDocument(); 
$dom->loadHTMLFile('file.html', LIBXML_HTML_NODEFDTD); 
echo $dom->C14N(); 
関連する問題