public function get_threadlist($thread_url){
$threadlist = array();
$thread_url = str_replace(array('&','='),array('&','='),$thread_url);
$baseurl = $this->configure['baseurl'];
$this->snoopy->fetch($thread_url);
$str_tmp = $this->snoopy->results;
if(empty($str_tmp)) $str_tmp = file_get_contents($thread_url);
$html = str_get_html($str_tmp);
foreach($html->find('div.newslist ul li span.tit a') as $e){
$threadlist[] = (strpos($e->href,'http') !== false) ? $e->href : rtrim($baseurl,'/').((substr($e->href,0,1)=='/')?$e->href:'/'.$e->href);
}
unset($html,$thread_url);
return $threadlist;
}
$url = 'http://xxx.com/list.asp?id=1';
$abc = get_threadlist($url);
print_r($abc);//这段函数是将远程列表页的文章地址加入数组现在改下,我想获取多个列表页的地址。例如 $url = 'http://xxx.com/list.asp?id=1|http://xxx.com/list.asp?id=2|http://xxx.com/list.asp?id=3|';如何修改这段函数,让它循环获取3个列表页的文章地址加入到数组?希望能给出详细函数,感激不尽。
foreach(explode('/', $urls) as $url){
if($url){
$abc = get_threadlist($url);
print_r($abc);
}
}
$urls = 'http://xxx.com/list.asp?id=1|http://xxx.com/list.asp?id=2|http://xxx.com/list.asp?id=3|';
foreach(explode('|', $urls) as $url) {
if($url) $ar = array_merge($ar, get_threadlist($url));
}
print_r($ar);
这个方法自定义的吧,有什么作用?
public function get_threadlist($thread_url){
if(strpos($thread_url, '|') !== false) {
$ar = array();
foreach(explode('|', $urls) as $url) {
if($url) $ar = array_merge($ar, $this->get_threadlist($url));
}
return $ar;
}
$threadlist = array();
$thread_url = str_replace(array('&','='),array('&','='),$thread_url);
$baseurl = $this->configure['baseurl'];
$this->snoopy->fetch($thread_url);
$str_tmp = $this->snoopy->results;
if(empty($str_tmp)) $str_tmp = file_get_contents($thread_url);
$html = str_get_html($str_tmp);
foreach($html->find('div.newslist ul li span.tit a') as $e){
$threadlist[] = (strpos($e->href,'http') !== false) ? $e->href : rtrim($baseurl,'/').((substr($e->href,0,1)=='/')?$e->href:'/'.$e->href);
}
unset($html,$thread_url);
return $threadlist;
}
$url = 'http://xxx.com/list.asp?id=1|http://xxx.com/list.asp?id=2|http://xxx.com/list.asp?id=3|';
$abc = get_threadlist($url);
print_r($abc);
<?php
public function get_threadlist($thread_url){
if(strpos($thread_url, '|') !== false) {
$ar = array();
foreach(explode('|', $thread_url) as $url) {
if($url) $ar = array_merge($ar, $this->get_threadlist($url));
}
return $ar;
}
$threadlist = array();
$thread_url = str_replace(array('&','='),array('&','='),$thread_url);
$baseurl = $this->configure['baseurl'];
$this->snoopy->fetch($thread_url);
$str_tmp = $this->snoopy->results;
if(empty($str_tmp)) $str_tmp = file_get_contents($thread_url);
$html = str_get_html($str_tmp);
foreach($html->find('div.newslist ul li span.tit a') as $e){
$threadlist[] = (strpos($e->href,'http') !== false) ? $e->href : rtrim($baseurl,'/').((substr($e->href,0,1)=='/')?$e->href:'/'.$e->href);
}
unset($html,$thread_url);
return $threadlist;
}
$url = 'http://xxx.com/list.asp?id=1|http://xxx.com/list.asp?id=2|http://xxx.com/list.asp?id=3|';
$abc = get_threadlist($url);
print_r($abc);