2012-08-03 82 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

相關問題