监听文件夹和文件(更改)

可以直接在PHP或Node上监听文件夹和文件的改变(通过事件),或者我需要自己的方法来做到这一点?

例如 :我需要听文件夹/user 。 如果我在这个目录中添加一些文件,PHP或者Node会收到这个信息,并运行PathEvent::fileAdded("/user/user.profile") 。 如果我重命名一个文件夹,它将运行PathEvent::pathRenamed("/user/save1", "/user/save2")

我知道PHP没有像Node这样的事件系统。 但是对于PHP,例如,我可以运行一个方法(我目前不知道)是否有自上次检查以来发生的更改。

那么…我只需要一种方法来开始search,我不知道这个search的术语到底是什么。 如果你能给我一个例子,那也会很棒! :P

Node.js提供了这个function。 你可以在这里阅读这个。

简单的例子:

 var fs = require('fs'); fs.watch('somedir', function (event, filename) { console.log(event); console.log(filename); }); 

注意:

在查看目录时,每个平台都不支持在callback中提供文件名参数(目前只支持Linux和Windows)。 即使在支持的平台上,文件名也不总是保证提供。 因此,不要假设文件名参数总是在callback中提供,并且如果为空,则有一些回退逻辑。

如果你有访问文件的方式访问/更改/添加等,我会创build几个表中的数据库。 一个用于改变types,另一个用于改变和时间戳。

当某人对文件进行某些操作时,即重命名。 它通过你的包装,也添加一个插入到当前时间戳与分贝。 当您的PHP脚本运行时,您可以从上次提取所有更改。 所以

select * from Log where ModifiedOn > $lastRun

这是我跟踪数据库表的变化。 我希望有帮助。