php 定时存文件夹 (问:如何使用 PHP 定时存储文件夹?)
如果想要对于一些数据进行周期性的备份或者存储,PHP 提供了很好的一种解决方案 —— 定时存文件夹。本文将介绍如何使用 PHP 对于文件夹进行周期性的备份或者存储。
一、创建一个 PHP 文件
首先,我们需要创建一个 PHP 文件,并且为其命名。例如,我们将文件命名为 “backup.php”。backup.php 文件将会通过一个 cron 定时器来定期运行,以此实现数据的备份。
二、使用 PHP 中的常用函数
我们需要使用一些 PHP 中的预定义函数,以此完成我们的目标。这些函数包括:
-
mkdir() : 创建文件夹
-
copy() : 复制文件
-
file_exists() : 检查文件是否存在
-
unlink() : 删除文件
三、使用 cron 定时器进行定时操作
我们需要使用 cron 定时器对 backup.php 文件进行定时操作。假设我们需要每天晚上 10:00 左右对文件夹进行备份,我们可以在命令行中输入以下代码:
crontab -e
然后在打开的 crontab 编辑器中添加以下代码:
0 22 * * * /usr/bin/php /path/to/backup.php >/dev/null 2>&1
这个代码将会在每天的晚上 10:00 左右执行 backup.php 文件。
四、编写 backup.php 文件
在 backup.php 文件中,我们需要编写一些代码以实现文件夹的备份。一个常用的备份方式是创建一个日期文件夹,然后将需要备份的文件夹复制到该文件夹中。下面是一个例子:
“`
<?php
$sourcefolder = ‘/path/to/source/folder’;
$destinationfolder = ‘/path/to/destination/folder/’ . date(‘Y-m-d’);
if (!fileexists($destinationfolder)) {
mkdir($destination_folder, 0777, true);
}
$files = scandir($source_folder);
foreach ($files as $file) {
if ($file == ‘.’ || $file == ‘..’) continue;
$source_file = $source_folder . '/' . $file;
$destination_file = $destination_folder . '/' . $file;
if (!file_exists($destination_file)) {
copy($source_file, $destination_file);
}
}
// 删除旧的备份文件夹
$daystokeep = 7;
$oldfolders = glob(‘/path/to/destination/folder/*’, GLOBONLYDIR);
$now = time();
foreach ($oldfolders as $folder) {
if (strtotime(basename($folder)) < strtotime(“-$daystokeep days”, $now)) {
arraymap(‘unlink’, glob(“$folder/.“));
rmdir($folder);
}
}
?>
“`
这段代码将会复制源文件夹到一个以当天日期命名的文件夹中,并且会删除早于七天的备份文件夹。
总结
以上就是如何使用 PHP 定时存储文件夹的方法,通过定时器配合 PHP 预定义函数,我们能够很轻松的实现文件夹周期性的备份或存储。希望这篇文章能够对大家有所帮助。