如何使用while循环PHP将数据推送到数组

时间:2017-07-14 17:01:31

标签: php arrays while-loop

我想用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++;
}

但似乎数组只包含第一次运行的数据,我做错了什么?

2 个答案:

答案 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以前是一个静态字符串,并没有在循环中改变。