Preg_match_all前后添加字符

时间:2018-08-18 01:01:05

标签: php preg-match-all

我正在使用preg_match_all方法从页面的定位标记内部获取网址。它可以工作,但是当我得到它们时,在将它们添加到数组之前,我想用'(例如'url')将它们包装起来:

preg_match_all('!<a href="(.*?)">!', $anchors, $urls);

有没有办法做到这一点?如果是,您能指出我正确的方向和正确的方法吗?

谢谢! :D

1 个答案:

答案 0 :(得分:2)

您可以使用regex to parse htmlDOMDocument来代替getElementsByTagName

$dom = new DOMDocument;
$dom->loadHTMLFile("yourfile.html");
$anchors= $dom->getElementsByTagName("a");
$hrefs = [];

foreach ($anchors as $anchor) {
    if ($anchor->hasAttribute("href")) {
        $hrefs[] = "'{$anchor->getAttribute('href')}'";
    }
}
相关问题