在PHP中如何搜索div并添加包装器容器div

时间:2010-12-09 09:53:58

标签: php

在PHP中我想搜索div并且div内部的图像需要添加包装div,比如

<div id="div1"><img src="test1.jpg" /></div><div id="div2"><img src="test1.jpg" /><img src="test2.jpg" /></div>

无论进入<div id="div2">内的任何图像,我都需要重新格式化,例如

<div id="div2"><div id="imageContainer"><img src="test1.jpg" /></div><div id="imageContainer"><img src="test2.jpg" /></div></div>

谢谢, 编码器

2 个答案:

答案 0 :(得分:0)

最佳做法是使用XML解析器,例如

DOM

像这样你可以获得一个值:

function getXpathValues(&$dom, $expr) {
$xpth = $dom->xpath_new_context();
    $xnode = xpath_eval($xpth,$expr);
    if (isset ($xnode->nodeset[0])) {
        $firstnode = $xnode->nodeset[0];
        $children = $firstnode->children();
        $value = $children[0]->content;
    return $value;
}
        else return Null;
}

用法:

$dom = domxml_open_file('pear.rss');
echo $this->getXpathValues($dom, "//channel/title");

在这里采取的形式: php manual

要真正插入新元素,请执行以下操作: xsl: for more complexity 或循环元素,将子项添加到新的元素(div imageContainer), 删除子项,并添加新元素

或者真的最简单 - 只需要替换字符串..

答案 1 :(得分:0)

最简单的方法是使用preg_replace();

你搜索img标签,然后在它周围放置一个div

<?php preg_replace("/\[(img .*?)\]/","<div class='div2'><$1></div>", $content); ?>

但是你说你正在创建一个wordpress模板..是上面发布的代码,是通过表单还是主题文件提交的?