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个列表页的文章地址加入到数组?希望能给出详细函数,感激不尽。

解决方案 »

  1.   

    $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){
      $abc = get_threadlist($url);
      print_r($abc);
     }
    }
      

  2.   

    $ar = array();
    $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);
      

  3.   

    get_threadlist
    这个方法自定义的吧,有什么作用?
      

  4.   

    <?php
    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('&amp;','&#61;'),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);
      

  5.   

    上面一个变量写错了 
    <?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('&amp;','&#61;'),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);