9

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

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

<div>This is some <b>text

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

4

4 に答える 4

11

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

これを使用して、インポート前に分類された広告システムから送信された不正な形式の XML と HTML をクリーンアップします。

于 2008-08-26T01:55:30.730 に答える
6

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

これを使用してmyspaceアーティストのツアー日程を取得する方法についての記事を書きました(ほんの一例です)。これは、phpの単純なhtmldomパーサーへのリンクです。

于 2009-02-02T17:04:53.053 に答える
3

現在組み込まれている 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>
于 2010-11-29T11:47:18.827 に答える
1

DOM を操作するために、探しているのはthisだと思います。以前は Web から HTML ドキュメントを解析していましたが、うまくいきました。

于 2008-08-26T02:24:55.607 に答える