请教如何实现跳过 update 文件夹里的 a. PHP ,其余的文件夹及文件全部删除

2022-08-13 10:16:58 +08:00
 vazo
1577 次点击
所在节点    PHP
10 条回复
vazo
2022-08-13 11:06:52 +08:00
如果是跳过文件名 a.php 的话,万一子文件夹也含有 a.php,就无法删除子文件夹.

现在是清空 update 前复制 a.php 到外面,清空后再复制回来.
caola
2022-08-13 12:23:17 +08:00
为什么一个要放这个文件到这里,不能用 nginx/apache 的 url 重写功能吗?
vazo
2022-08-13 12:36:05 +08:00
<? php
function deldir($dir) {
//删除目录下的文件
$dh = opendir($dir);
while ($file = readdir($dh)) {
if ($file != "." && $file != "..") {
$fullpath = $dir . "/" . $file;
if (!is_dir($fullpath)) {
if ($fullpath == "update/index.php") { //增加一个条件排除 update 下的 index.php
} else {
unlink($fullpath);
} else {
deldir($fullpath);
}
}
}
}
closedir($dh);
//删除文件夹
if (rmdir($dir)) {
return true;
} else {
return false;
}
}

deldir('update') //需要清空操作的文件夹
?>
vazo
2022-08-13 12:37:02 +08:00
跑了一下应该是 ok 了.
vazo
2022-08-13 12:38:09 +08:00
@caola 就是喜欢 php 呀😁
wxf666
2022-08-13 12:39:22 +08:00
『 find . -path ./update/a.php -o -delete 』?
vazo
2022-08-13 12:48:17 +08:00
@wxf666 有权限还是用 cron 简洁.
vazo
2022-08-13 13:25:55 +08:00
#3 代码有误,更正如下

<?
function deldir($dir) {
//删除目录下的文件
$dh = opendir($dir);
while ($file = readdir($dh)) {
if ($file != "." && $file != "..") {
$fullpath = $dir . "/" . $file;
if (!is_dir($fullpath)) {
if ($fullpath == "update/a.php") { //增加一个条件排除 update 下的 a.php
} else {
unlink($fullpath);
}
} else {
deldir($fullpath);
}
}
}
closedir($dh);
//删除当前文件夹
if (rmdir($dir)) {
return true;
} else {
return false;
}
}
deldir('update') //需要清空操作的文件夹
?>
realpg
2022-08-13 15:23:41 +08:00
把 a.php 加入 git
git reset --hard
caola
2022-08-14 14:15:12 +08:00
@vazo URL 重写不知道用吗,又不是非得把这个文件放到 update 目录里才能访问和执行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872574

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX