首先,我是PHP的新手。
通常情况下我可以为preg_match
执行<div class="T-time">(.*)</div>
标记并阅读内容,但我无法做同样的事情:
<div class="T-date"> <a href=" different link ">123</a> </div>
preg_match
标记中每次链接不同时,是否可以123
标记<a href=>
结果?
谢谢你们。
答案 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);