質問

PHP で HTML を操作する良い方法を探しています。たとえば、私が現在抱えている問題は、不正な形式の HTML を扱うことです。

次のような入力を取得しています。

<div>This is some <b>text

お気づきのとおり、HTML には終了タグがありません。この問題を解決するには、正規表現または XML パーサーを使用できます。ただし、将来的には他の DOM 操作が必要になる可能性があります。Javascript が DOM 操作を処理する方法と同様に、DOM 操作を処理する優れた PHP ライブラリはあるのだろうか。

役に立ちましたか?

解決

PHP には HTML Tidy の機能にアクセスできる PECL 拡張機能. 。Tidy は非常に強力なライブラリであり、そのようなコードを取得し、インテリジェントな方法でタグを閉じることができるはずです。

私は、インポート前に案内広告システムから送信された不正な XML と HTML をクリーンアップするためにこれを使用しています。

他のヒント

PHP Simple HTML DOM は、これまでで最も便利で簡単なライブラリであることがわかりました。PECLよりも優れていると思います。

について記事を書きました Myspaceアーティストのツアー日程をスクレイピングするためにそれを使用する方法 (ほんの一例です。) ここにリンクがあります。 php シンプルな html dom パーサー。

現在組み込まれている DOM ライブラリを使用すると、この問題を簡単に解決できます。loadHTML メソッドは不正な形式の XML を受け入れますが、load メソッドは受け入れません。

$d = new DOMDocument;
$d->loadHTML('<div>This is some <b>text');
$d->saveHTML();

出力は次のようになります。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
  <body>
    <div>This is some <b>text</b></div>
  </body>
</html>

DOM を操作する場合、あなたが探しているのは次のとおりだと思います これ. 。以前は Web から HTML ドキュメントを解析していましたが、うまくいきました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top