可能重复:
RegEx match open tags except XHTML self-contained tags
How to parse and process HTML with PHP?
Simple: How to replace “all between” with php?
我正在寻找一种方法来更改包含php中某些文本的锚标记中的所有文本
即:
<a href="stackoverflow.com"><strong>This is text</strong></a>
我想搜索“这是文本”,然后用其他内容替换文本所在的锚标记。
使用正则表达式最简单吗?
由于
答案 0 :(得分:1)
Html可以像xml一样对待。您应该使用php xml函数来执行此操作。见http://php.net/manual/en/book.xml.php
答案 1 :(得分:0)
您可以使用DOMXpath
轻松完成此操作:
$s =<<<EOM
<a href="stackoverflow.com"><strong>This is text</strong></a>
EOM;
$d = new DOMDocument;
$d->loadHTML($s);
$x = new DOMXPath($d);
foreach ($x->query("//a[contains(strong, 'This is text')]") as $node) {
$new = $d->createTextNode('Hello world');
$node->parentNode->replaceChild($new, $node);
}
echo $d->saveHTML();