ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルを使用して HTML を解析するための実装コード

php_PHP チュートリアルを使用して HTML を解析するための実装コード

WBOY
リリース: 2016-07-21 15:25:05
オリジナル
813 人が閲覧しました

最近、PHP を使用して HTML を解析する必要があるクローラーを作成したいと思い、sourceforge で CSS セレクターを通じて指定された DOM 要素を返すことができるプロジェクトを見つけました。強力な。
まずプログラムの先頭にsimple_html_dom.phpファイルを導入します

コードをコピーします コードは次のとおりです:

include_once('simple_html_dom.php')

PHP Simple HTML DOM Parserが提供します。 DOM オブジェクトを作成する 3 つの方法
コードをコピー コードは次のとおりです:

// 文字列から DOM オブジェクトを作成します
$html = str_get_html('Hello !< /html>');
// URL から DOM オブジェクトを作成します
$html = file_get_html('http://www.google.com/'); HTML ファイルからオブジェクトを取得します
$html = file_get_html('test.htm');

DOM オブジェクトを取得した後、さまざまな操作を実行できます

コードをコピーします コードは次のとおりです:
// すべてのアンカーを検索し、要素オブジェクトの配列を返します
$ret = $html->find('a')
// (N) 番目のアンカーを検索し、見つからない場合は要素オブジェクトまたは null を返します (ゼロベース);
$ret = $html->find(' a', 0);
// 最新のアンカーを検索し、見つからない場合は要素オブジェクトまたは null を返します (ゼロベース)
$ret = $html->find('a ', -1);
// ID 属性を持つすべての
を検索します
$ret = $html->find('div[id]');
// どの属性 ID を持つすべての
を検索します=foo
$ret = $html->find ('div[id=foo]');

ここでは、jQuery の DOM 操作と同じように、さまざまな CSS セレクターを使用でき、非常に便利です。さらに、テキストとコメントの内容を取得するための 2 つの特別な属性があります

コードをコピーします コードは次のとおりです:
// すべてのテキスト ブロックを検索します
$es = $html->find ('text' );
// すべてのコメント () ブロックを検索
$es = $html->find('comment');

もちろん、これはまだ jQuery に似ていますが、PHP シンプル HTML DOM パーサーは、DOM 要素にアクセスするためのチェーン操作とさまざまな単純なメソッドもサポートしています

コードをコピーします コードは次のとおりです:
// 例
echo $html-> ;find("#div1", 0)->children(1)->children(1)->children(2)->id;
// または
echo $html->getElementById(" div1")->childNodes( 1)->childNodes(1)->childNodes(2)->getAttribute('id');

http://www.bkjia.com/PHPjc/324200.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/324200.html技術記事最近、HTML の解析が必要な PHP を使用したクローラーを書きたいと思っています。sourceforge で PHP Simple HTML DOM Parser というプロジェクトを見つけました。これは、jQuery のような方法で CSS セレクターを介して返すことができます...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート