循环函数中的PHP数组

时间:2013-11-26 01:16:36

标签: php regex arrays function loops

我有php功能从某个页面获取项目,该项目有分页

function get_content($link){
    $string = file_get_contents($link);
    $regex = '/https?\:\/\/[^\" ]+/i';
    preg_match_all($regex, $string, $matches);

    //this is important
    foreach($matches as $final){
        $newarray[] = $final;
    }

    if(strpos($string,'Next Page')){ //asumme the pagination is http://someserver.com/content.php?page=2
        get_content($link);
    }

    return $newarray;
} 

问题:

  1. 是否可以在这种情况下使用循环函数?

  2. 当我尝试它时,为什么我只获得1页数组?我的意思是如果有5页,每页有50个链接,当我尝试print_r结果时,我只获得50个链接,而不是250个。

  3. 谢谢

1 个答案:

答案 0 :(得分:1)

您永远不会将递归值设置为您正在构建的主数组。并且您根本不更改$link以更改从中获取数据的文件。

您需要执行以下操作:

if(strpos($result,'Next Page')){ //asumme the pagination is http://someserver.com/content.php?page=2
    $sub_array = get_content($link . '?page=x'); // you need some pagination identifier probably
    $newarray = array_merge($new_array, $sub_array);
}