Reliable Regex for HTML are difficult.这里是如何做到
DOM:
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('a') as $node) {
echo $dom->saveHtml($node), PHP_EOL;
}
上面将找到并输出$ html字符串中所有A元素的“outerHTML”。
要获得节点的所有文本值,就可以
echo $node->nodeValue;
要检查href属性是否存在,您可以执行
echo $node->hasAttribute( 'href' );
要获得href属性,你会做
echo $node->getAttribute( 'href' );
要更改您要做的href属性
$node->setAttribute('href', 'something else');
要删除您要做的href属性
$node->removeAttribute('href');
您也可以直接使用XPath查询href属性
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//a/@href');
foreach($nodes as $href) {
echo $href->nodeValue; // echo current attribute value
$href->nodeValue = 'new value'; // set new attribute value
$href->parentNode->removeAttribute('href'); // remove attribute
}
另见: