2011-05-05 62 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