我試圖使用兩個preg_match
以從html
源代碼中獲取兩個特定值。兩個連續的preg_match
<?php
$url = "http://www.example.com";
$userAgent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1";
$ch = curl_init();
curl_setopt($ch,CURLOPT_USERAGENT,$userAgent);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_AUTOREFERER,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,10000000);
$html = curl_exec($ch);
preg_match('~<span class="first">(.*)<\/span>~msU',$html,$matching_data);
preg_match('~<span class="second">(.*)<\/span>~msU',$html,$matching_data2);
print_r($matching_data);
print_r($matching_data2);
?>
在這方面採取的$html
VAR包含以下順序考慮:
<title>foobar title</title>
<body>
<div class="second">Not this one</span>
<div>
<span class="first">First</span>
<span class="second">this one<span>
</div>
</body>
如果我跑我php
代碼,第一print_r
返回正確的價值:<span class="first">First</span>
。但第二個print_r
,而不是返回<span class="second">this one<span>
它返回<div class="second">Not this one</span>
。
所以我想preg_match
函數開始治療的開始,而不是最後preg_match
調用。
如何讓第二個(第三,第四等)呼叫preg_match
在最後一次呼叫時運行?
謝謝,
問候。
你可以使用preg_match_all。 – igorw 2011-02-08 13:05:58