我有这个简单的短语,我需要最后的网址值。
<h4>Location</h4><a href="link">NOT NEEEDED</a> > <a href="link">NOT NEEDED</a> > <a href="link">NEED</a><br />
HTML对于布局是不变的,唯一会改变的是链接数。
我想知道是否有人总是抓住最后一个链接的值,即使只有一个链接。
答案 0 :(得分:3)
它已被反复数百次,使用正则表达式解析HTML 的危险性。
虽然我确信正则表达式足以满足这个HTML子集的要求,但我仍然相信你最好不要使用...
$dom = new DOMDocument;
$dom->loadHTML($html);
$anchors = $dom->getElementsByTagName('a');
$lastHref = $anchors->item($anchors->length - 1)->getAttribute('href');
更强大的IMO。
答案 1 :(得分:1)
你可以试试这个:
preg_match_all("/href=\"([^\"]+)\"/",$html,$m);
$last = array_pop($m[1]);
答案 2 :(得分:0)
我同意亚历克斯;您通常不希望使用正则表达式来解析标记。如果您在使用他的示例时遇到格式错误标记的任何问题,请尝试使用整齐的扩展程序先清理它:http://php.net/manual/en/tidy.examples.basic.php