私は DomDocuement を初めて使用し、他のどこにも答えを見つけることができなかったため、この回答を書いています。
CMS サイト用のカスタム WordPress テーマを作成しています。要件の 1 つは、他のサイトから Web ページのコンテンツを取得し、そのコンテンツの一部を選択して表示し、完全なコンテンツについて元のサイトを参照することです。
そのためwp_remote_get
、WordPress の関数を使用して Web ページを取得しています。次に、特定の Web ページ要素に移動するためにそれを解析する必要があります。次のように、Domdocument を使用してページを解析しています。
$dom = new domDocument();
$dom->loadHTML($html); // Where $html is the page retrieved earlier using wp_remote_get
さて、問題は loadHTML() がこれらの警告を引き起こしていることです:
PHP Warning: DOMDocument::loadHTML(): DOCTYPE improperly terminated in Entity, Lline: 2
PHP Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced <html> tag in Entity, line: 3
PHP Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced <head> tag in Entity, line: 4
PHP Warning: DOMDocument::loadHTML(): htmlParseStartTag: misplaced <body> tag in Entity, line: 105
PHP Warning: DOMDocument::loadHTML(): ID 1 already defined in Entity, line: 551
そして、さらに多くの警告があります。
明らかに、この Web ページには何か問題がありますが、取得する必要があるほとんどのページでこれらのエラーが発生します。
私の質問は次のとおりです。
- それらの警告について心配する必要がありますか
- これらの欠陥を無視するように domdocuemnt に指示する方法はありますか?
- 物事を正しく機能させるにはどうすればよいですか
ご意見ありがとうございます