2011-01-03 14 views
4

私は、どちらが処理の方が速いのか疑問に思っていますか?PHP Domドキュメントのhtmlは高速ですか、preg_match_all関数が高速ですか?

curl関数を使用したdomドキュメントまたはpreg_match_allは、htmlページの解析が高速ですか? dom関数はカール関数のように他のサーバにトレースを残しますか?たとえばcurl関数では、ユーザーエージェントを使用して誰がアクセスしているかを定義しますが、domドキュメントには何もありません。

+1

あなたはあなたが理解しにくいです。使用例 – zzzzBov

+0

フェッチしているドキュメントから何を得ようとしていますか? – dqhendricks

答えて

0

dom関数はhtmlの取得とは関係ありません。

しかし、httpリソースを直接取得するために使用できるロード関数があります。

コンテキストパラメータなしのfile_get_contentsと同じ動作を示します。

ご質問の他の部分については、 preg関数はより高速です。しかしそれらはその使用を意図したものではなく、あなたはおそらくすぐにこの目的のために使用することを後悔するでしょう。

正規表現でhtmlを解析している場合、あなたは完全に驚くばかりか、htmlという概念を得られません。

5

誤った結果が出た場合に速いのはどちらですか?

ドキュメントから1ビットのデータを取得するための正規表現とのマッチングは、HTMLドキュメント全体を解析するよりも速くなります。しかし、正規表現はすべての場合にHTMLを正しく解析できません。

http://htmlparsing.com/regexes.htmlを参照してください。これは私がこの共通の質問に取り組むために始めたものです。 (そして、これを読んでいる人のために、私は助けを使うことができます。ソースはgithub上にあり、多くの異なる言語の例が必要です)。

1

正規表現はおそらく高速ですが、 。ベンチマークを行い、アプリケーションをプロファイリングし、最適化することが他にない場合を除き、適切な既存のパーサを調べる必要があります。

正規表現を使用してHTMLと一致させることができますが、it takes a thorough effort to come up with a reliable parserです。 PHP offers a bunch of native extensions to work with XML(およびHTML)を確実に使用できます。多くのサードパーティライブラリもあります。カスタムユーザーエージェントを送信するためとして

に私の答えを参照してください、これはあまりにもDOMで可能です。 create a custom stream contextattach it with the underlying libxml functionsが必要です。 available HTTP Stream context options this wayのいずれかを入力できます。カスタムユーザーエージェントを提供する方法例えば

に私の答えを参照してください。

関連する問題