0

这是 curl 中仅解析网站链接的代码(包括所有参数,如跨度、样式):

if(preg_match_all('/<a.*?href="(.*?)".*?>(.*?)<\/a>/si',$result,$parts))
{

    $links=$parts[0];

    foreach($links as $link)
    {
        echo $link."<br>";
    }
    curl_close($ch);
}

但我想从标签中排除跨度、样式。我怎样才能以那种模式编辑?

4

1 回答 1

0

你的意思是说如果<span>标签出现在<a>and之间</a>,你不希望它出现在输出中?

如果是这样,没有简单的方法可以在正则表达式中完成,但您可以在打印之前对每个函数使用strip_tags()之类的函数。$link

顺便说一句,可能适合您目的的更简单的模式是/<a .*?<\/a>/.

于 2012-04-21T12:27:48.003 回答