我有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页数组?我的意思是如果有5页,每页有50个链接,当我尝试print_r结果时,我只获得50个链接,而不是250个。
谢谢
答案 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);
}