在项目中关闭了调试模式之后,对视图文件的修改不删除缓存无法生效。
这里给大家分享一个一键删除缓存的功能
首先是在系统的控制器中添加操作方法:
public function cache_cleanAction() {
echo "缓存清理中……<br/>";
$path = RUNTIME_PATH . "Cache/";//删除缓存目录
echo delCache($path);//调用函数删除缓存
echo "<br/>缓存清理完毕。";
}现在是调用函数:
/**
* 删除目录及目录下所有文件或删除指定文件
* @param str $path 待删除目录路径
* @param int $delDir 是否删除目录,1或true删除目录,0或false则只删除文件保留目录(包含子目录)
* @return bool 返回删除状态
*/
function delCache($path, $delDir = FALSE) {
$message = "";
$handle = opendir($path);//打开目录
if ($handle) {
while (false !== ( $item = readdir($handle) )) {//判断目录
if ($item != "." && $item != "..") {
if (is_dir("$path/$item")) {
$msg = delCache("$path/$item", $delDir);//循环调用
if ( $msg ){
$message .= $msg;
}
} else {
$message .= "删除文件" . $item;
if (unlink("$path/$item")){
$message .= "成功<br />";
} else {
$message .= "失败<br />";
}
}
}
}
closedir($handle);
if ($delDir){
if ( rmdir($path) ){
$message .= "删除目录" . dirname($path) . "<br />";
} else {
$message .= "删除目录" . dirname($path) . "失败<br />";
}
}
} else {
if (file_exists($path)) {
if (unlink($path)){
$message .= "删除文件" . basename($path) . "<br />";
} else {
$message .= "删除文件" + basename($path) . "失败<br />";
}
} else {
$message .= "文件" + basename($path) . "不存在<br />";
}
}
return $message;
}函数参考的是thinkphpadmin的删除缓存,记得给予权限;
千万记住。如果输入的目录为错误的。那么默认是.开始,也就是会清空你的项目文件。并且在回收站是没有的!
上一篇: 网站名加载https...