我们在做网站开发时候经常会遇到项目中包含很多没用用到的无用文件,这些文件大量占用我们服务器或者空间资源,也不方便我们后期维护。所以需要删掉这些文件,如果一个一个删非常麻烦,我写了一个程序会自动检测项目中没用的图片并把他统一移到一个名叫delete的文件夹,然后一下子就删掉。之所以没用直接代码删掉,是为了考虑到有备份需求。
<?php
//读取文件夹中的所有文件名,并将其输出显示。
$root = 'project root folder';
//图片文件夹
$imgDir = $root . 'path to image folder';
//页面文件夹
$pageDir = $root . 'path to page folder';
//读取图片文件
$imgs = scandir($imgDir);
//读取页面文件
$pages = scandir($pageDir);
foreach ($imgs as $img) {
if ($img != '.' && $img != '..') {
$i = 0;
$pageCount = 0;
foreach ($pages as $file) {
$page = $pageDir . DIRECTORY_SEPARATOR . $file;
if (!is_dir($page)) {
$content = file_get_contents($page);
$pageCount++;
//判断图片是否被引用
if (strpos($content, $img) === false) {
$i = $i + 1;
}
}
}
//移动无用图片
if ($i == $pageCount) {
if (!is_dir($imgDir . DIRECTORY_SEPARATOR . 'delete')) {
@mkdir($imgDir . DIRECTORY_SEPARATOR . 'delete');
}
rename($imgDir . DIRECTORY_SEPARATOR . $img, $imgDir . DIRECTORY_SEPARATOR . 'delete' . DIRECTORY_SEPARATOR . $img);
echo $img . '被删除' . PHP_EOL;
}
}
}
echo '图片处理完毕,没用用到图片移到' . $imgDir . DIRECTORY_SEPARATOR . 'delete目录下' . PHP_EOL;