PHP - 自动检测何时/如果文件已更新

时间:2012-04-27 18:41:51

标签: php

PHP中有没有办法检测文件的更新和保存时间?

如果不是最好的方法'伪造'这个。

即。在执行某个操作之前,检查文件的上次保存日期?

5 个答案:

答案 0 :(得分:3)

您可以使用filemtime。它返回文件的“上次修改”时间戳。 (如果您的意思是在更改文件时运行PHP脚本,那么仅使用PHP是不可能的。)

答案 1 :(得分:2)

您可以使用filemtime()查找文件的修改日期。如果我理解你是对的。

但是,如果您想要在更改文件时跟踪文件,您仍然可以使用filemtime,但是您必须跟踪当前修改日期(例如在db或文件中)并检查此值当前价值。

您可以使用cronjob定期运行此php脚本。

答案 2 :(得分:2)

PHP脚本无法自动检测文件更改,因为必须请求页面。您可以编写脚本并运行cron(计划任务)以便经常运行。或者像其他人建议的那样使用filemtime()

答案 3 :(得分:1)

<?php
// outputs e.g.  somefile.txt was last modified: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}

?>

使用this function获取上次修改文件的时间。您可以使用数据来完成任务。

答案 4 :(得分:0)

一种简单的方法是使用 crc32 类型的散列来监视内容更改,其优点是占用空间非常小。

<?php
$hash = hash_file("crc32","watch.txt");
while ($hash === hash_file("crc32","watch.txt")){
  usleep(100000); // 100ms
}
echo "File changed";
<块引用>

https://en.wikipedia.org/wiki/Cyclic_redundancy_check

A Cyclic Redundancy Check (CRC) (...) 进入这些系统的数据块会变得很短 检查附加值,基于多项式除法的余数 他们的内容。在检索时,重复计算,并且在 检查值不匹配的事件,可以采取纠正措施 拍摄

https://www.php.net/manual/en/function.hash-algos.php