php preg_match for <a href=""></a>

时间:2013-04-17 15:23:36

标签: php html html-parsing preg-match

首先,我是PHP的新手。

通常情况下我可以为preg_match执行<div class="T-time">(.*)</div>标记并阅读内容,但我无法做同样的事情:

<div class="T-date"> <a href=" different link ">123</a> </div>

preg_match标记中每次链接不同时,是否可以123标记<a href=>结果?

谢谢你们。

1 个答案:

答案 0 :(得分:3)

最好使用DOM解析器这样做:

$input = 'html input';
$html = new DOMDocument();
$html->loadHTML($input);

foreach($html->getElementsByTagName('div') as $div)
{
    if($div->getAttribute('class') == 'T-date')
    {
        foreach($div->getElementsByTagName('a') as $link)
            echo ($link->getAttribute('href') . "\t" . $link->nodeValue . "\n");
    }
}

但如果您仍想使用preg_match,可以使用此功能:

$str = '<div class="T-date"> <a href=" different link ">123</a> </div>';
preg_match('/<div class="T-time"><a.*?>(.*?)<\/a></div>/', $str, $matches);
print_r($matches);