QueryList Collector Development Manual
/ 区域选择器例子
区域选择器例子
Query( ) 方法第三个参数,区域选择器,详情:$range 区域选择器 (可选)
<?php require 'querylist/vendor/autoload.php'; use QL\QueryList; //采集#main下面的li里面的内容 $html =<<<STR <div id="main"> <ul> <li> <h1>这是标题1</h1> <span>这是文字1<span> </li> <li> <h1>这是标题2</h1> <span>这是文字2<span> </li> </ul> </div> STR; //方法一,不推荐 $data = QueryList::Query($html,array( 'title' => array('#main>ul>li>h1','text'), 'content' => array('#main>ul>li>span','text') ))->data; print_r($data); //方法二,设置范围选择器 $data = QueryList::Query($html,array( 'list' => array('h1','text'), 'content' => array('span','text') ),'#main>ul>li')->data; print_r($data); /** 两种方式的输出结果都相同: Array ( [0] => Array ( [title] => 这是标题1 [content] => 这是文字1 ) [1] => Array ( [title] => 这是标题2 [content] => 这是文字2 ) ) */ //但方法一有严重的缺陷,例如html变成这样,其它代码不变 $html =<<<STR <div id="main"> <ul> <li> <h1>这是标题1</h1> </li> <li> <h1>这是标题2</h1> <span>这是文字2<span> </li> </ul> </div> STR; /** 方法一输出结果,结果已经错位了: Array ( [0] => Array ( [title] => 这是标题1 [content] => 这是文字2 ) [1] => Array ( [title] => 这是标题2 ) ) 方法二输出结果,依旧正确: Array ( [0] => Array ( [list] => 这是标题1 [content] => ) [1] => Array ( [list] => 这是标题2 [content] => 这是文字2 ) ) */