我正在构建一个扫描图像目录并调整任何超过 800 像素宽的 cron 作业。如果那天上传了图像,我也只希望它进入调整大小,所以我尝试使用 filemtime() 但我一直得到 1969-12-31 回来。
我已经阅读了有关该问题的所有论坛帖子,但似乎没有任何效果。我已经在我的本地 WIN 10 机器(使用 xammplite)和我的生产 Linux 机器上对其进行了测试。两者都使用 PHP 5.3 或更高版本,我得到完全相同的结果。
这是一个代码片段以及我添加的回声以查看发生了什么:
$files = scandir($_SERVER['DOCUMENT_ROOT'] . '/forum_functions/image_uploads');
$check_date = date('Y-m-d', strtotime('now'));
echo 'check date is ' . $check_date . '<br>';
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
echo 'file date is ' . date('Y-m-d', strtotime(filemtime($_SERVER['DOCUMENT_ROOT'] . "/forum_functions/image_uploads/{$file}"))) . '<br>';
echo 'file is ' . $_SERVER['DOCUMENT_ROOT'] . "/forum_functions/image_uploads/{$file}" . '<br>';
echo 'file exists ' . file_exists($_SERVER['DOCUMENT_ROOT'] . "/forum_functions/image_uploads/{$file}") . '<br>';
if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/forum_functions/image_uploads/{$file}") && $check_date == date('Y-m-d', strtotime(filemtime($_SERVER['DOCUMENT_ROOT'] . "/forum_functions/image_uploads/{$file}")))) {
// do resizing
}
}
}
foreach 循环中的第一个回显为所有图像打印 1969-12-31
foreach 中的第二个回显正确打印了路径
第三个回显为文件存在返回 true,但由于日期错误而无法输入 if 条件。
我检查了日志中的警告,但没有,我检查了文件夹权限,它们都很好。
我刚弄明白了!也许我的眼睛错过了一些东西,或者发生了一些我不知道的事情,所以我真的可以使用一些建议。