我想用preg_match_all()
抓取几页并将数据保存到一个数组($matches
),网址如下:
webpage.com/p/1
和最后的nuber是子页面的数量,每次运行都必须更改。
我想到了类似的东西(有10个子页面):
$x = 1;
while ($x <= 10) {
$current_page = 'webpage.com/p/$x';
$subpage = file_get_contents($current_page);
preg_match_all('regexp', $subpage, $matches);
$matches = $matches[1];
$x++;
}
但似乎数组只包含第一次运行的数据,我做错了什么?
答案 0 :(得分:1)
您可以尝试类似于以下内容的内容 - 确保您不会像发生的那样覆盖$matches
$data=array();
$regex='';
for( $i=0; $i < 10; $i++ ){
$html = file_get_contents( 'http://www.webpage.com/p/'.$i );
preg_match_all( $regex, $html, $matches );
$data[] = count( $matches ) > 1 ? $matches[1] : false;
)
$data=array_filter($data);
print_r( $data );
答案 1 :(得分:0)
$current_page = 'webpage.com/p/'.$x;
$ x以前是一个静态字符串,并没有在循环中改变。