当前位置: 首页 > news >正文

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();

 

相关文章:

  • Android javaMail使用imap协议接收邮件
  • 缓存遇到的数据过滤与分页问题
  • 通过libVirt抓取kvm虚拟机监控指标数据
  • Eclipse+Pydev
  • TTL和RS232之间的详细对比
  • NSMutableArray崩溃信息
  • 艰困之道中学到的经验教训
  • 【JAVA秒会技术之随意切换数据库】Spring如何高效的配置多套数据源
  • 国外的搜索引擎,能查到好多资料
  • 基于nginx的负载均衡概述与实现
  • 总结2016,规划2017
  • GreenOpenPaint的实现(二)打开显示图片
  • CSS命名规范:
  • 桌面开发者的界面故事,该醒醒了
  • yii2中session跨域名的问题
  • 【React系列】如何构建React应用程序
  • 【前端学习】-粗谈选择器
  • JavaScript新鲜事·第5期
  • JAVA之继承和多态
  • k个最大的数及变种小结
  • leetcode46 Permutation 排列组合
  • Linux快速复制或删除大量小文件
  • Material Design
  • Vue.js 移动端适配之 vw 解决方案
  • 仿天猫超市收藏抛物线动画工具库
  • 基于Android乐音识别(2)
  • 记一次用 NodeJs 实现模拟登录的思路
  • 每天一个设计模式之命令模式
  • 前嗅ForeSpider教程:创建模板
  • 项目实战-Api的解决方案
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 正则与JS中的正则
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 回归生活:清理微信公众号
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (待修改)PyG安装步骤
  • (南京观海微电子)——I3C协议介绍
  • (三)uboot源码分析
  • (三)终结任务
  • (转) ns2/nam与nam实现相关的文件
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • (状压dp)uva 10817 Headmaster's Headache
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .a文件和.so文件
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET MVC第三章、三种传值方式
  • .net 程序发生了一个不可捕获的异常
  • .Net 代码性能 - (1)
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET国产化改造探索(一)、VMware安装银河麒麟