1
4

2 回答 2

1

怎么样

$dom->find("#blahlist li");

就是“抢”li所有的s 。 #blahlist

于 2011-11-15T09:48:49.473 回答
1

使用正则表达式抓取:

$html = <<<EOF
<ul id="blahlist">
    <li><a href="http://blahblah.com">blah blah</a></li>
    <li><a href="http://blahblah2.com">blah blah 2</a></li>
    <li><a href="http://blahblah2.com">blah blah 3</a></li>
    <li><a href="http://blahblah2.com">blah blah 4</a></li>
</ul>
EOF;

$ul_id = "blahlist";

if (preg_match("#<ul[^<>]+id=[\"']?{$ul_id}[\"']?[^<>]*>([\s\S]+?)</ul>#i", $html, $match)) 
{
    $lis = $match[1];
    preg_match_all("#<li[^<>]*>\s*<a[^<>]+href=[\"']?([^<>\"']+)[\"']?[^<>]*>([\s\S]+?)</a>#i", $lis, $matches);
    foreach ($matches[1] as $k => $href) {
        $href = strip_tags($href);
        $text = strip_tags($matches[2][$k]);
        print "$text [$href]<br>";
    }
}

您只需在这一行编辑 ul 列表的 id:

$ul_id = "blahlist";

结果:

blah blah [http://blahblah.com]
blah blah 2 [http://blahblah2.com]
blah blah 3 [http://blahblah2.com]
blah blah 4 [http://blahblah2.com]
于 2011-11-15T11:11:09.853 回答