在PHP中有没有一种方法可以检测文件何时被更新和保存?如果没有,那最好的方法是“伪造”这个。即在执行某个操作之前,检查文件的最后保存日期?
vi4fp9gy1#
PHP脚本无法自动检测文件的更改,因为页面必须被请求。您可以编写一个脚本,并运行一个cron(计划任务),以便每隔一段时间运行一次。或者像其他人建议的那样使用filemtime()。
okxuctiv2#
可以使用filemtime。它返回文件的“最后修改”时间戳。(如果您的意思是在文件更改时运行PHP脚本,那么仅使用PHP是不可能的。
filemtime
ojsjcaue3#
您可以使用filemtime()来查找文件的修改日期。如果我没理解错的话。但是,如果你想在文件被修改时跟踪它们,你仍然可以使用filemtime,但是你必须跟踪当前的修改日期(例如:在db或file中),并对照当前值检查此值。你可以使用cronjob定期运行这个php脚本。
filemtime()
2guxujil4#
<?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)); } ?>
使用此函数获取文件上次修改的时间。你可以利用数据来完成你的任务。
ndasle7k5#
一种简单的方法是使用crc32类型的散列来监视内容更改,这种散列具有占用空间非常低的优势。
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一个C循环R校验C校验(CRC)(...)进入这些系统的数据块得到一个短的校验值,基于其内容的多项式除法的余数。在检索时,重复计算,如果检查值不匹配,可以采取纠正措施算法列表:https://www.php.net/manual/en/function.hash-algos.php
5条答案
按热度按时间vi4fp9gy1#
PHP脚本无法自动检测文件的更改,因为页面必须被请求。您可以编写一个脚本,并运行一个cron(计划任务),以便每隔一段时间运行一次。或者像其他人建议的那样使用filemtime()。
okxuctiv2#
可以使用
filemtime
。它返回文件的“最后修改”时间戳。(如果您的意思是在文件更改时运行PHP脚本,那么仅使用PHP是不可能的。ojsjcaue3#
您可以使用
filemtime()
来查找文件的修改日期。如果我没理解错的话。但是,如果你想在文件被修改时跟踪它们,你仍然可以使用
filemtime
,但是你必须跟踪当前的修改日期(例如:在db或file中),并对照当前值检查此值。你可以使用cronjob定期运行这个php脚本。
2guxujil4#
使用此函数获取文件上次修改的时间。你可以利用数据来完成你的任务。
ndasle7k5#
一种简单的方法是使用
crc32
类型的散列来监视内容更改,这种散列具有占用空间非常低的优势。https://en.wikipedia.org/wiki/Cyclic_redundancy_check
一个C循环R校验C校验(CRC)(...)进入这些系统的数据块得到一个短的校验值,基于其内容的多项式除法的余数。在检索时,重复计算,如果检查值不匹配,可以采取纠正措施
算法列表:https://www.php.net/manual/en/function.hash-algos.php