php - 4 PHP 脚本删除具有指定扩展名和前缀的超过 21 天的文件和文件夹
问题描述
我正在尝试创建 4 个脚本来完成休闲任务:
- 脚本 1 - 删除超过 21 天且扩展名为“txt”的文件
- SCRIPT 2 - 删除指定路径内超过 21 天的文件夹
- 脚本 3 - 删除指定路径内超过 21 天的文件
- SCRIPT 4 - 删除文件夹和子文件夹中超过 21 天且前缀为“file_prefix”的文件
下面是我在网上找到的代码。所以我创建了 4 个单独的文件,如 script1.php 等,上传到我的服务器上并尝试启动它们。我返回的只是浏览器窗口中的代码本身,但文件和文件夹没有被删除:(希望你能帮助我。下面我尝试采用我在网上找到的代码并创建3个脚本。不幸的是我不知道如何创建第四个,因为它会更复杂。
我只是一个前端开发人员开始学习PHP代码基础......
/***** SCRIPT 1 - Delete files older than 21 days with .txt extension *****/
$days = 21;
$path = './mypath/folder_with_txt_files/';
$filetypes_to_delete = array("txt");
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if (is_file($path.$file))
{
$file_info = pathinfo($path.$file);
if (isset($file_info['extension']) && in_array(strtolower($file_info['extension']), $filetypes_to_delete))
{
if (filemtime($path.$file) < ( time() - ( $days * 24 * 60 * 60 ) ) )
{
unlink($path.$file);
}
}
}
}
}
/***** SCRIPT 2 - Delete folders older than 21 days *****/
$days = 21;
$path = './mypath/folders_to_delete/';
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if (is_dir($path.$file))
{
if (filemtime($path.$file) < ( time() - ( $days * 24 * 60 * 60 ) ) )
{
unlink($path.$file);
}
}
}
}
/***** SCRIPT 3 - Delete files older than 21 days *****/
$days = 21;
$path = '/mypath/folder_with_files_to_delete';
if ($handle = opendir($path))
{
while (false !== ($file = readdir($handle)))
{
if (is_file($path.$file))
{
if (filemtime($path.$file) < ( time() - ( $days * 24 * 60 * 60 ) ) )
{
unlink($path.$file);
}
}
}
}
/***** SCRIPT 4 - Delete files inside the folder and subfolders older than 21 days with prefix 'file_prefix' *****/
?
解决方案
出于明显的安全原因,网络服务器努力将其工作与操作系统的工作隔离开来。网络服务器本身通常在非常严格和有限的用户帐户下运行。
要通过浏览器运行维护脚本,您需要撤消这些保护并授予网络服务器对更多文件夹的权限。
这将是一个非常糟糕的主意。
但是,您可以从 PHP 的命令行版本(即控制台)运行这些脚本。然后它将具有与从控制台继承的相同权限。
推荐阅读
- android - 如何点击firebaseRecyclerView中的ImageView?
- translation - API 将美国英语翻译成英国英语
- java - 将 get 请求转发到 post 请求的尝试返回不支持的错误 Spring
- html - 为什么盒子不是 100% 高度?
- java - org.apache.spark.sql.AnalysisException:找不到表和视图
- javascript - 谷歌表格脚本编辑器和正确解析 JSON
- machine-learning - 使用自动编码器的 1 的不兼容形状
- webrtc - 如何使用 OpenTok 选择音频输出
- javascript - 数据过滤器默认不显示任何内容
- angular - Clarity 带有指针的下拉菜单