2011-05-05 63 views
0

使用以下代碼我匹配一個9位數的字符串。我成功地在不使用循環的情況下返回第一個實例,但我希望通過整個頁面查看並返回每個9位數的字符串,到目前爲止它沒有這樣做。它只返回NULL循環返回所有匹配

$source = file_get_contents($url); 
preg_match('/cd=([0-9]{9})/', $source, $match); 

foreach ($match[1] as $output) 
{ 
    echo $output; 
} 
+0

不要忘了'\ D'快捷方式:) – alex 2011-05-05 01:17:52

回答

2

使用preg_match_all

preg_match documentation

的preg_match()返回的時間模式相匹配的數量。這將是0次(不匹配)或1次,因爲preg_match()將在第一場比賽後停止搜索。相反,preg_match_all()會一直持續到主題結束。 preg_match()返回FALSE如果發生錯誤。

$match數組可能看起來不同,所以你必須調整你的循環。

+0

由於它的工作:) – jack 2011-05-05 01:10:27

+0

@jack:不要忘了接受一些更多的答案;) – 2011-05-05 01:11:58

+0

+1什麼是什麼,我會說:) – alex 2011-05-05 01:17:38