我想在网站上做一些动态CSS样式更新,并且需要使用PHP over JavaScript。我只需要标记其中包含img
标记的div
标记,并忽略div
标记的其余部分。PHP DOM检查img是否在div内
这是我到目前为止有:
$dom = new domDocument; $dom->loadHTML($test); $dom->preserveWhiteSpace = false; $divs = $dom->getElementsByTagName('div'); foreach ($divs as $div) { $saveXML[] = $dom->saveXML($div); $childNotes[] = $div->getChildNodes; }
我只是想在这里两种方法。 $saveXML
选项的问题在于它给我提供了包含封装div
的全部代码。我不想那样。此外,从现在开始,我将不得不在代码上运行正则表达式或其他代码,以查找它是否在其中包含img
标记。
$childNodes
选项应该是我认为最好的,但数组返回空。这本来是不错的,因为我可以简单地试图像
if ($childNode->nodeType == 'img'){ $div->setAttribute('class', $new_attributes); }
东西(我没有想到,最后一位了充分但那是一般概念)..
下面是HTML代码我的一个样本需要通过
div class="image-left drop-shadow raised" style="width: 210px"> img src="images/myimage.jpg" width="200" height="150" class="size-full"/ p>EDIT THIS DIV's STYLE /p> /div> div class="blocktext" style="width: 150px;"> p>DONT EDIT THIS DIVs STYLE /p> /div>
任何帮助,请搜索...
完全!我几乎无法理解HTML。 –
啊愚蠢的文本编辑器一直在想,代码的一点是页面上的实际代码,它会消失...所以我只是删除它们的具体情况。我知道他们应该有<的:) –