我正在使用ob_buffer获得一个页面的代码,我试图替换包含类锁定内容的页面内的所有div。
虽然使用jquery很容易,但问题是使用php有点难。比如我有这样的html代码
<div class='class'> cool content </div>
<div class='class more-class life-is-hard locked-content'>
<div class='cool-div'></div>
<div class='anoter-cool-div'></div>
some more code here
</div>
<div class='class'> cool content </div>
现在这似乎是一个复杂的任务,我认为我需要以某种方式检测有多少div与类'locked-content'之后打开div,然后计算有多少关闭的div,当想要的div关闭时,然后用新代码替换代码,同时循环代码,以防div存在不止一次。
有人知道怎么做这样的事情吗?由于
您可以通过DOMXPath
:
$dom = new DOMDocument();
$dom->loadHtml($html);
$xpath = new DOMXPath($dom);
$node = $xpath->query('//div[contains(@class, "locked-content")]');
foreach ($nodes as $node) {
foreach ($node->childNodes as &$cNode) {
if ($cNode instanceOf DOMElement && $cNode->tagName === 'div') {
$cNode->replaceWith(/* Whatever */);
}
}
}