есть html
…. bla bla bla….
<div class="description">
<span style='float: right'></span>
<h2>Bakery</h2>
<p>3501 Broadway <br />New York, NY 10015 <a href="map/map-link-107172" id="map-link-107172">Map</a></p>
<ul>
<li class="number">(856) 629-6271</li>
</ul>
<ul>
<li><a href="http://bakery.com" class="main_web_site">Visit Web Site</a></li>
</ul>
<h4></h4>
</div>
bla..
bla…
Делаю так
$data = @file_get_contents('http://site.com') or die('Can\'t access source');
if(preg_match_all("#<h2>(.*?)</h2>#is", $data, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
print $match[0].'<br />';
}
}
if(preg_match_all("#<li class=\"number\">(.*?)</li>#is", $data, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
print $match[0].'<br />';
}
}
if(preg_match_all("#<p>(.*)</p>#iU", $data, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
print $match[0].'<br />';
}
}
проблема в том что например теги h2 или тег <p> пристутвует в других местах на странице и между ними содержится не не нужная иформация
как сделать чтобы искалось только все что содержится между <div class="description"> а потом уже внутри <div class="description"> искать то что будет между h2 и p