2012-08-03 53 views
0

HTML标签之间的提取数据使用正则表达式使用正则表达式提取的HTML标签之间的数据

我有这个例子成功,从名称采用值,并把在分成三个不同的阵列

$str = '<ul> 
<li><a name="valuehere1" title="titlehere" href="/channel/london/">Link1</a></li> 
<li><a name="valuehere2" title="titlehere" href="/channel/games/">Link1</a></li> 
<li><a name="valuehere3" title="titlehere" href="/channel/sport/">Link1</a></li> 
</ul>'; 

preg_match_all('/<li><a name="(.*)" title/', $str, $m); 
print_r($m); 

我不喜欢下面的代码有任何运气。我想<ul class="statelist">(.*) </ul>标签之间提取所有的数据,但它只是返回两个空数组

$data = '<ul class="statelist"> 
       <li><a href="http://www.mymovingreviews.com/usa/alabama-movers-al-1">Alabama (45)</a></li> 
       <li><a href="http://www.mymovingreviews.com/usa/alaska-movers-ak-2">Alaska (4)</a></li> 
       <li><a href="http://www.mymovingreviews.com/usa/arizona-movers-az-3">Arizona (113)</a></li>      
       </ul>'; 

preg_match_all('/<ul class="statelist">(.*) <\/ul>/', $data, $m); 

print_r($m); 

回答

0

加-s选项的正则表达式

preg_match_all('/<ul class="statelist">(.*) <\/ul>/s', $data, $m); 
                   ^^^^ here 

它会使你的正则表达式接受自动换行(\ n字符)。 (See the doc

+0

太棒了。谢谢! – user1092786 2012-08-03 14:54:58

相关问题