2011-07-25 16 views
1

私は複数のPHP文字列(それぞれ10〜100k文字)を持ち、それらの子要素から正確な要素を取得したいと考えています。PHP - 文字列フィルタリング(正規表現?)

例:

$bbc_string = file_get_contents('http://www.bbc.co.uk/'); 
echo $bbc_string; 

が90544個の文字を与え、ページ全体を表示します。しかし、ナビゲーションやフッタなど、ページ全体が必要なのは誰ですか?

<div id="news_container"> 
    everything in it 
</div> 

または::

<h2 id="worldService_title"> 
    everything in it 
</h2> 

を私が欲しいものを示すために$ bbc_string出力をフィルタリングしたり解析するためにどのようにして唯一の表示したい場合は

、さんが言う何を聞かせて?

私は正規表現のソリューションだと思う、私はこのパターン発見しました:

preg_match('/<div id=\"".$id."\">(.*?)</div>/', $string, $matches); 

をしかし、それは動作しませんとだけdivのないすべての要素のために働くことになっています。

PHP /正規表現の忍者は?

+2

PHPでHTMLをパースすることは何度も求められています。私は重複を調べることさえ気にしません。 –

+0

構造体を解析してオブジェクトツリーにしかアクセスしないxml/domパーサを使用するのはどうですか? – Nobody

+0

@Marc B、申し訳ありませんが、このトピックに関する明確な回答は見つかりませんでした。 – Wordpressor

答えて

2

HTMLを解析するには、DOMを使用する必要があります。