//采集章节的具体规则
$rule="/<div class='box_title'><div class='title'><b>(.*?)<\/b><a href='.*?'>\[分卷阅读\]<\/a><\/div><div class='word_amout'>.*?<\/div><\/div><div class=\"box_cont\">(?:<div class=\"intro\">.*?<\/div>)?<div class=\"list\"><ul>(?:<li style='.*?'><a href=\"(.*?)\" title=.*?>(.*?)<\/a><\/li>)*?<\/ul><\/div><\/div>/";preg_match_all($rule,$this->chapters,$chapters);
//目标地址:http://www.qidian.com/BookReader/1140692.aspx(?:<li style='.*?'><a href=\"(.*?)\" title=.*?>(.*?)<\/a><\/li>)*?
//全部可以多次匹配到,但是里面的的就只能匹配2个。求解啊。。

解决方案 »

  1.   


    //转入URL就可以抓取网页
    function ch($url){
    $ch = curl_init(); 
    $options = array(CURLOPT_URL => $url, 
    CURLOPT_HEADER => 0, 
    CURLOPT_NOBODY => 0, 
    CURLOPT_PORT => 80, 
    CURLOPT_RETURNTRANSFER => 1, 
    CURLOPT_FOLLOWLOCATION => 1
    ); 
    curl_setopt_array($ch, $options); 
    $code = curl_exec($ch); 
    curl_close($ch); 
    //return gb2312格式
    //return $code; 
    return mb_convert_encoding($code,"utf-8","gb2312"); 
    }
      

  2.   


    array(
    "0"=>"作品相关",
        "1"=>array(
    "0"=>"《百炼成仙》的QQ群",
    "1"=>"《百炼成仙》的第二个QQ群"
    )
    )
      

  3.   

    按你给的 url 和 正则,得到    [1] => Array
            (
                [0] => 作品相关&nbsp;
                [1] => 雨点墨香&nbsp;
                [2] => 第一卷 飘云谷&nbsp;
                [3] => 第二卷 盗仙草&nbsp;
            )    [2] => Array
            (
                [0] => /BookReader/1140692,34519995.aspx
                [1] => /BookReader/1140692,34950782.aspx
                [2] => /BookReader/1140692,22774644.aspx
                [3] => /BookReader/1140692,24085928.aspx
            )    [3] => Array
            (
                [0] => 外传
                [1] => 莲心单评第一千八百六十三章荒漠与空间缝隙
                [2] => 第六十八章 灵控术与大圆满
                [3] => 推荐好友的一本新书
            )
    没看出有什么问题
      

  4.   

    带有 分卷阅读 的大类只有这几个
    其他的都是 订阅VIP章节 成为起点VIP会员
    自然娶不到每个章节 处于大类之中,且不含 分卷阅读 
    自然也是娶不到的不过你可以通过遍历 $chapters[0] 用你第二个规则串取出