我有这样的多个img url: -
<img alt="" border="0" src="http://asia.cnet.com/05/i/g/red_arrow_dn.gif">
我想在php中替换每个启动并关闭img标签: -
<div class="miricle_image"><img alt="" border="0" src="http://asia.cnet.com/05/i/g/red_arrow_dn.gif"/></div>
但我无法在php中通过regex或preg_replace替换启动和关闭img标记。
所有img标签由fckeditor创建并保存在数据库中,我的工作是通过数据库获取所有img标签并替换为
<div class=""><img src=""/></div>
并再次保存在数据库中。
答案 0 :(得分:1)
在html解析的情况下,正则表达式不可靠。最好在php中使用一些html解析器。 simple html dom 是一个很好的解析器,它很简单,非常类似于jQuery。您可以使用它来操作来自php的html字符串
答案 1 :(得分:0)
你可以尝试这个jquery
$("img").each(function(){
var htm = $(this).html();
htm = '<div class="miricle_image">'+htm+' div</div>';
$(this).html(htm);
});
<强> DEMO 强>
答案 2 :(得分:0)
尝试测试此代码
<?php
$text = "<img src='abc.jpg'><img src='abc.jpg'><img src='abc.jpg'>";
$text = preg_replace("/<img([^>]*)>/i", '<div class="miricle_image"><img\\1></div>', $text);
echo $text;
?>
并在这里演示https://eval.in/178421
答案 3 :(得分:0)
尝试使用PHP HTML解析器,例如:https://github.com/paquettg/php-html-parser并尝试用包装的替换img节点。