dede数据库内容替换,去掉文章内容中的img标签

dede数据库内容替换,去掉文章内容中的img标签

大家好,又见面了,我是全栈君。

1、织梦已经给我们准备好了数据库内容替换工具,在采集->批量维护->数据库内容替换

dede数据库内容替换,去掉文章内容中的img标签 - 怀素真 - 因上努力 果上随缘
2、织梦的文章内容一般在放在dede_addonarticle表body字段中。
dede数据库内容替换,去掉文章内容中的img标签 - 怀素真 - 因上努力 果上随缘
(1)、选择好数据表和字段。
(2)、选择替换方式为正则表达式,填写主键字段(表的主键)。
(3)、填写被替换内容,正则表达式:
<img(.*)src=\"([^\"]+)\"[^>]+>

(4)、替换内容留空。

(5)、根据需要填写替换条件(如aid=123)。
(6)、输入安全码,开始替换。
 
如果上述都填写正确,应该会出现成功替换个数。如果没有,那很大程度上是正则出错了。
在网上找了很多正则img标签的,不过测试了一下都没用。
织梦处理数据库替换的文件在后台的sys_data_replace.php中,代码如下:
//获取替换条件
$condition = empty($condition) ? '' : " And $condition ";

//被替换内容,这里就是我们填写的正则
$rpstring = stripslashes($rpstring);

//简单的进行字符串转义替换
$rpstring2 = str_replace("\\","\\\\",$rpstring);
$rpstring2 = str_replace("'","\\'",$rpstring2);


//构造sql语句进行查询,注意这里的$rpstring2跟下面php用到的正则$rpstring实际上是一样的。

//那么问题就来了,网上很多正则标签在PHP下测试是可以的,不过到MySQL下就不行了。

//百度了一下发现,MySQL不支持正则的零宽断言,对正则的支持也很简单。
$dsql->SetQuery("SELECT $keyfield,$rpfield FROM $exptable WHERE $rpfield REGEXP '$rpstring2'  $condition ");
$dsql->Execute();
$tt = $dsql->GetTotalRow();
if($tt==0)
{
    ShowMsg("根据你指定的正则,找不到任何东西!","javascript:;");
    exit();
}
$oo = 0;
while($row = $dsql->GetArray())
{
    $kid = $row[$keyfield];

    //通过PHP的正则替换把结果集中的数据替换

    $rpf = preg_replace("#".$rpstring."#i", $tostring, $row[$rpfield]);
    $rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield='$rpf' WHERE $keyfield='$kid' ");
    if($rs)
    {
        $oo++;
    }
}
$dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`");
ShowMsg("共找到 $tt 条记录,成功替换了 $oo 条!", "javascript:;");
exit();

 

转载于:https://www.cnblogs.com/jkko123/p/6294621.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108690.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • zigbee组网的设计_物联网组网技术

    zigbee组网的设计_物联网组网技术目前,针对一定区域内信息和设备进行监测和控制多采用有线方式通信,网络在布线和维护过程中由于线路腐蚀和损坏造成网络中断,给正常生产工作带来影响,同时也增加了人力资源成本比重。基于此,从节省成本和网络稳定性考虑,给出一种基于ZigBee技术的多节点设备无线自组网设计方案。   基于IEEE802.15.4协议的ZigBee技术是一种新兴的短距离无线通信技术,具有功耗低、成本低

    2022年10月8日
    2
  • NSIS教程(9): NSIS+duilib仿QQ安装包

    NSIS教程(9): NSIS+duilib仿QQ安装包本文在NSIS教程(8):基于第三方界面库的安装包界面基础上,分享如何使用NSIS结合duilib高仿QQ安装包的过程。先上效果图吧!完整NSIS脚本#======================自定义宏==============================!definePRODUCT_NAME”腾讯QQ”!defineE

    2025年8月21日
    3
  • assertthat和assertequals的区别_assertEquals

    assertthat和assertequals的区别_assertEqualsASSERT_VALID()与ASSERT()异同ASSERT()是MFC库中的断言,用法是ASSERT(布尔表达式).ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名字和当前行号,用户可以

    2025年9月23日
    5
  • html中w3c标准,W3C是什么意思 W3C标准简介

    html中w3c标准,W3C是什么意思 W3C标准简介W3C是什么意思W3C标准简介发布时间:2012-10-2614:58:03作者:佚名我要评论W3C是英文WorldWideWebConsortium的缩写,中文意思是W3C理事会或万维网联盟。W3C组织是对网络标准制定的一个非赢利组织,像HTML、XHTML、CSS、XML的标准就是由W3C来定制什么是W3CW3C是英文WorldWideWebCo…

    2025年12月12日
    4
  • Springboot整合shiro_spring boot框架介绍

    Springboot整合shiro_spring boot框架介绍Shiro介绍Shiro是一款安全框架,主要的三个类Subject、SecurityManager、RealmSubject:表示当前用户SecurityManager:安全管理器,即所有与安全有关的操作都会与SecurityManager交互;且其管理着所有Subject;可以看出它是Shiro的核心,它负责与Shiro的其他组件进行交互,它相当于SpringMVC中DispatcherServlet的角色Realm:Shiro从Realm获取安全数据(如用户、角色、权限)Shiro

    2025年9月2日
    5
  • 【mysql 清空数据】清除mysql表中数据「建议收藏」

    【mysql 清空数据】清除mysql表中数据「建议收藏」主要命令有两种,一种是delete方式,一种是truncatetable方式。deletefrom表名;truncatetable表名;不带where参数的delete语句可以删除mysql表中所有内容,使用truncatetable也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据

    2022年5月22日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号