在PHP中使用Img标记替换

时间:2014-08-12 05:31:45

标签: php

我有这样的多个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> 

并再次保存在数据库中。

4 个答案:

答案 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节点。