2013-03-07 2 views
5

preg_matchでこのdivのコンテンツを見つけるにはどうすればよいですか<div class="lot-price-block">preg_match特定のdivとクラスとの間のコンテンツを見つける

私はこのような何かをしたが、私は何も得ることはできません。

$value=preg_match_all('/<div class=\"lot\-price\-block\">(.*)<\/div>/',$file_contents,$estimates); 
+0

'ますprint_r($推計)は' – str

+0

問題は、そのクエリの戻り何もありません....私は正規表現を使用してHTMLを解析の最初のルールは –

+2

それを表示する方法を知っている:[正規表現を使用してHTMLを解析しないでください] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) – SDC

答えて

14

まず内のすべての一致する内容を取得します?演算子を使用して、正規表現を貪欲にする。これは、あなたが得ると思う以上に得ることができないことを確認します。次は、式の最後に/s演算子です。私は多くの改行文字 "\n"を持つHTMLファイルを解析すると仮定します。

$value=preg_match_all('/<div class=\"lot\-price\-block\">(.*?)<\/div>/s',$file_contents,$estimates); 
+0

これはありがとうございます;-) –

+0

お気軽に –

+0

私は

Hello how are you
のように参照divから内容を取得する方法を繰り返すべきではないユニークなpreg_matchを使用したいと思います。あなたはidとクラスの両方を使って 'hello how are you'という文字列を抽出します。 –

0

はこれを試してみてください:

$file_contents = '<div class="lot-price-block">Test content</div>'; 

$value=preg_match_all('/<div\s*class="lot\-price\-block"\s*>(?P<content>.*)<\/div>/',$file_contents,$estimates); 

echo "<pre>"; 
print_r($estimates); 

あなたはすべてのprint_r($estimates['content']);

+0

コードを編集してください今すぐ確認してください –

+0

しかし、私が持っているように参照divから内容を取得する方法

Hello how are you
私は繰り返してはならないユニークなpreg_matchを使いたいと思います。あなたはidとクラスの両方を使って 'hello how are you'という文字列を抽出します。 –

関連する問題