织梦cms/dedecms清理冗余废弃未引用图片方法
原理描述:
操作步骤:
1. 打开后台dede\sys_sql_query.php代码
else if($dopost=="repairAll")
{
$dsql->SetQuery("Show Tables");
$dsql->Execute('t');
while($row = $dsql->GetArray('t',MYSQL_BOTH))
{
$rs = $dsql->ExecuteNoneQuery("REPAIR TABLE `{$row[0]}` ");
if($rs)
{
echo "修复表: {$row[0]} ok!<br />\r\n";
} else {
echo "修复表: {$row[0]} 失败! 原因是: ".$dsql->GetError()."<br />\r\n";
}
}
exit();
}
else if($dopost=="delerrpic")
{
ini_set('max_execution_time',1800);//单位秒
ini_set('max_input_time',1800);//单位秒
//echo ini_get('max_execution_time')."\n";
$file_a=array();
$err_img_cnt = 0;
function rFile($p){
global $file_a;
global $dsql;
global $err_img_cnt;
$handle=opendir($p);
$dir_a=array();
while ($file = readdir($handle)) {
if($file!="." && $file!=".."){
$tmp=$p."/".$file;
echo "<br />dir: ".$tmp;
if(is_dir($tmp)){
$dir_a[count($dir_a)]=$tmp;
}elseif(is_file($tmp)){
$file_a[count($file_a)]=$tmp;
$v = $tmp;
$temp=substr($v,2);
$query = "select count(*) as cnt from dede_addonimages where imgurls like '%".$temp."%'";
//echo "query sql: ".$query."<br />";
$dsql->setquery($query);
$dsql->execute();
while($row = $dsql->getarray())
{
//print_r($row);
if($row['cnt']==0){
if(strpos($v, 'del_') == FALSE && substr($v, -7, 3)!="-lp" && substr($v, -8, 4)!="_lit" && substr($v, -10, 5)!="index"){
if(file_exists($v)) {
unlink($v);
echo "<br />unlink: ".$v;
$err_img_cnt++;
}
}
}
}
}
}
}
closedir($handle);
foreach($dir_a as $v){
rFile($v);
}
}
rFile("../uploads/allimg/171003");//调用,要遍历的目录
$dsql->Close();
ShowMsg("成功删除冗余图片, 共: ".$err_img_cnt."张!","javascript:;");
exit();
}
2. 修改模板htm文件, 打开dede\templets\sys_sql_query.htm
<input type="Submit" name="Submit5" value="优化全部表" class="coolbg np" onClick="this.form.dopost.value='opimizeAll';" />
<br />
<input type="Submit" name="Submit6" value="修复全部表" class="coolbg np" onClick="this.form.dopost.value='repairAll';" style="margin-top:6px;" />
<br />
<input type="Submit" name="Submit7" value="清理冗余图片" class="coolbg np" onClick="this.form.dopost.value='delerrpic';" style="margin-top:6px;" />
</div>
3. 打开系统 -> SQL命令行工具, 使用"清除冗余图片",清理某个日期的目录(如1中红色代码路径所示)
织梦cms/dedecms清理冗余废弃未引用图片方法的更多相关文章
- [转载]织梦CMS首页调用分类信息栏目及列表方法
原文地址:织梦CMS首页调用分类信息栏目及列表方法作者:小武哥 不懂代码,搜索学习一晚上,都是说调用特定栏目分类信息列表的,用这个代码 {dede:arclistsg row='10' titlele ...
- 织梦CMS(dedecms)栏目属性及系统封面模板、列表模板、文章模板区别和路径设置解答
问题一:(织梦"栏目管理"的"常规选项"中3个栏目属性分析?) 织梦CMS的栏目属性分成三种, -->最终列表栏目 -->频道封面 -->外部 ...
- php中(包括织梦cms)set_time_limit(0)不起作用的解决方法
背景介绍: 在做织梦冗余图片清理的功能时, 由于冗余图片太多,导致每次清理时都会超时, 后来在网上搜索了各种文章,网上有如下的解决方法: set_time_limit(0) ini_set('max_ ...
- 都是 htmlspecialchars的错,解决 织梦cms dedecms 标题不能为空 不支持php5.3 php5.4 php5.5版本
article_add.php 101行 $title = htmlspecialchars(cn_substrR($title,$cfg_title_maxlen)); 改成 $title = h ...
- (转)织梦cms首页添加digg顶一下的修改方法
现在把文章内容页拔的顶拔出来.分享一下让各位需要的朋友参考使用(特别注意:红色的是修改的地方)第一步:把顶踩的js和ajax提取出来,放在想要使用的页面用(比如:首页)以下是内容页顶踩用的js.提取出 ...
- 织梦CMS首页调用分类信息栏目及列表方法
不懂代码,搜索学习一晚上,都是说调用特定栏目分类信息列表的,用这个代码 {dede:arclistsg row='10' titlelen='24' orderby='pubdate' channel ...
- “织梦”CMS注入高危漏洞情况
"织梦"CMS注入高危漏洞情况 作者: 时间:2014-04-17 "织梦"CMS是由上海卓卓网络科技有限公司研发的一款网站建站系统软件,又称&quo ...
- 如何设置织梦cms自定义表单字段为必填项
1.编辑器打开\plus\diy.php2.在40行左右找到此行代码:$dede_fields = empty($dede_fields) ? '' : trim($dede_fields);3.在这 ...
- 织梦cms PHPcms 帝国cms比较
现在建网站不需要请程序员从基础的程序开发做起了,有专业的建站工具,CMS是使用最广泛的建站工具.CMS是Content Management System 现在建网站不需要请程序员从基础的程序开发做起 ...
随机推荐
- 【洛谷1640】[SCOI2010]连续攻击游戏
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- idea Artifact mdn:war exploded: Server is not connected. Deploy is not available.
idea 启动tomcat报的错误,启动tomcat无效 看了网上的好几种说发 说删除tomcat/bin/catalina.bat 里的JAVA_OPTS= -Xms512M -Xmx512M - ...
- Micropython TurnipBit 青少年入门编程 交通灯实验
不知道大家小时候对红绿灯的原理有什么研究过,我是农村的孩子直到初中才见到真实的红绿灯,当时我记得很清楚,在那个路口站了五六分钟就盯着红绿灯变换,搞不清原理,只觉得神奇.现在想来实在可笑,今天写这个的很 ...
- oled
gnd.vcc.clk.miso.rst.mosi.cs
- Lintcode221 Add Two Numbers II solution 题解
[题目描述] You have two numbers represented by a linked list, where each node contains a single digit. T ...
- QTcreator打包发布可运行程序(基于QT5.7)
完成C++界面程序后,我们还需要对程序进行Release,然后进行打包,才可以直接运行.我在这期间绕了一个大弯,现在记录下来我的做法供参考. 正确步骤 第一步:将构建程序改为Release,然后构建项 ...
- 设计模式——中介者模式/调停者模式(C++实现)
#include <iostream> #include <string> using namespace std; class Colleague; class Mediat ...
- python 全栈开发,Day4
python之文件操作 一.文件操作基本流程 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到 ...
- Git分支(2/5) -- Fast Forward 合并
快捷操作: 切换并创建分支: git checkout -b 分支名. git checkout -b some-change 然后我打开某个文件(index.html)修改一下标题. Commit之 ...
- 在nuxt中加入element-ui插件遇到的问题
gen1.首先进入nuxt的官网跟着步骤实现内容. https://zh.nuxtjs.org/guide/plugins 2.在我们的项目目录中找plugin 根据图片中的表示引入内容: impor ...