Php 获取所有锚定标签

Php 获取所有锚定标签,php,preg-match,preg-match-all,Php,Preg Match,Preg Match All,你好 我的正则表达式非常糟糕,我想在我的项目上寻求帮助 我有我从其他网站抓取的内容,我想得到所有锚标签,其中有这个字符串 target="_blank" 我将如何做到这一点?如有任何建议,将不胜感激 谢谢正如评论中提到的,正则表达式不是这里的答案 使用DOM和XPath实现您想要的功能 $doc = new DOMDocument; $doc->loadHTMLFile('http://www.example.com/some-file.html'); $xpath = new DOM

你好

我的正则表达式非常糟糕,我想在我的项目上寻求帮助

我有我从其他网站抓取的内容,我想得到所有锚标签,其中有这个字符串

target="_blank"
我将如何做到这一点?如有任何建议,将不胜感激


谢谢

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

使用DOM和XPath实现您想要的功能

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

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

同意@quentin,但是你可以使用regexr,所有锚定标记的基本regex是

,你可以在适合特定模板的HTML上使用它,但对于“从其他站点爬网的内容”来说,它是不安全的。我有一个适合特定模板的HTML。感谢您的快速响应。可能需要将
DOMXPath::query()
的返回值分配给那里的某些内容

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

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