获取所有锚标签

时间:2012-01-12 07:21:47

标签: php preg-match preg-match-all

美好的一天!

我的正则表达非常糟糕,我想请求帮助我的项目。

我有从其他网站抓取的内容,我想获得所有包含此字符串的锚标记。

target="_blank"

我将如何做到这一点?任何建议都将不胜感激。

由于

3 个答案:

答案 0 :(得分:2)

正如评论中所提到的,正则表达式不是这里的答案。

使用DOM和XPath实现您想要的目标

$doc = new DOMDocument;
$doc->loadHTMLFile('http://www.example.com/some-file.html');

$xpath = new DOMXPath($doc);
$anchors = $xpath->query('//a[@target="_blank"]');

答案 1 :(得分:1)


$dom = new DOMDocument();
$dom->loadHtml($yourCobtent);

$xpath = new DOMXpath($dom);
$yourAnchors = $xpath->query('//a[@target="_blank"]');

答案 2 :(得分:0)

同意@quentin,但你可以使用regexr,(http://gskinner.com/RegExr/),所有锚标签的基本正则表达式为<a.*href=["'](?<url>[^"]+[.\s]*)["'].*>(?<name>[^<]+[.\s]*)</a> (http://weblogs.asp.net/palermo4/archive/2004/06/18/regex-pattern-for-anchor-tags-part-2.aspx)