21,887
社区成员
发帖
与我相关
我的任务
分享
public function getAllPage($url){
/**
* curl_setopt($ch, CURLOPT_FAILONERROR, true);//记录错误信息设置
* curl_errno可以获得错误码,当然也包括错误的http状态码
curl_error可以获得错误信息
*/
$ch = curl_init($url);//初始化一个句柄
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,1111111);
$html = curl_exec($ch);
curl_close($ch);
//修饰一下,从何时开始。
$length = strpos($html, 'class="mt5');
$newHtml = substr($html, $length);
//修饰END
$pattern = "#\/post-.*\.shtml#i"; //正则表达式
preg_match_all($pattern, $newHtml,$matches);
//抓取下一页链接地址
$nextPagePattern = "#\<a href=\"(.*)\"\srel#";
preg_match($nextPagePattern, $newHtml,$nextPage);
$nextPageUrl = "http://bbs.tianya.cn".$nextPage['1'];
//下一页 END
//链接。全。
foreach($matches['0'] as $k=>$v){
$matches[$k] = 'http://bbs.tianya.cn'.$v;
}
//之前的递归是在这里的,一运行直接死掉了。。。。。
return array(
'0'=>$matches,
'1'=>$nextPageUrl,
);
}
for($i=0;$i<100;$i++){
$this->getAllPage($nextPageUrl)
}