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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 笔记17-Map「建议收藏」

    笔记17-Map「建议收藏」1.Map集合1.1Map集合概述和特点【理解】Map集合概述interfaceMap<K,V>K:键的类型;V:值的类型Map集合的特点键值对映射关系一个键对应一个值键不能重复,值可以重复元素存取无序Map集合的基本使用publicclassMapDemo01{publicstaticvoidmain(String[]args){//创建集合对象Map<String,String&g

    2022年9月8日
  • 填充墙一般用什么材料_opencv填充封闭区域

    填充墙一般用什么材料_opencv填充封闭区域目录一、须知二、演示过程代码展示主函数展示原图运行结果三、总结一、须知本文章所提供代码不是自创,由于时间太久实在找不到来源,发布出来只为给大家提供便利,完全免费。话不多说,不想看文章的直接点击下载链接即可:点我.二、演示过程代码展示Matcop二值图intn填充比n小的孔洞函数默认为4连通如想改为8连通自行修改代码即可。#include”imfill.h”Matimfill(Matcop,intn){ Matdata=~cop; Matlabels,

    2022年9月12日
  • ubuntu svn命令 tab补全(linux安装svn客户端)

    ubuntuSVN命令大全1、将文件checkout到本地目录svncheckout path(path是服务器上的目录)例如:svncheckoutsvn://192.168.1.1/pro/domain简写:svnco2、往版本库中添加新的文件svn add file例如:svn add test.php(添加te

    2022年4月11日
  • SpringCloud之Zuul网关[通俗易懂]

    SpringCloud之Zuul网关[通俗易懂]Zuul网关

    2022年8月15日
  • Linux通配符和正则表达式通配符 区别_linux正则表达式语法

    Linux通配符和正则表达式通配符 区别_linux正则表达式语法1、 通配符通配符是shell在做PathnameExpansion时用到的。说白了一般只用于文件名匹配,它是由shell解析的,比如find,ls,cp,mv等。 1、1Shell常见通配符:通配符含义实例*匹配0或多个字符a*ba与b之间可以有任意长度的任意字符,也可以一个也没有,如aabcb,axyzb,a012b,ab。?匹配任意一个字符a?ba与b之间必须也只能有一个…

    2022年9月18日
  • 《Java Web从入门到精通》PDF 百度网盘

    《Java Web从入门到精通》PDF 百度网盘http://www.java1234.com/a/javabook/javaweb/2014/1219/3407.html《JavaWeb从入门到精通》PDF下载《JavaWeb从入门到精通》PDF下载下载地址:链接:https://pan.baidu.com/s/1pNj0efh密码:iroa  电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍:《…

    2022年5月16日

发表回复

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

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