>  기사  >  백엔드 개발  >  有什么方法能利用php监控文件夹内的文件的变化

有什么方法能利用php监控文件夹内的文件的变化

WBOY
WBOY원래의
2016-08-04 09:20:122110검색

1、我在stack overflow上看到有人说利用md5来实现链接为http://stackoverflow.com/ques...。请各位告知我,如何实现的,3Q
2、还有没有其他的方法能实现监控呢?

回复内容:

1、我在stack overflow上看到有人说利用md5来实现链接为http://stackoverflow.com/ques...。请各位告知我,如何实现的,3Q
2、还有没有其他的方法能实现监控呢?

1.通过scandir()获取本目录下面所有的文件;
2.foreach遍历文件,用md5file()保存文件md5值到其他目录的文件OR数据库(为什么不是数组等变量?因为变量在每次执行都会被清空);
3.用cron或windows的计划任务执行,把之前的md5列表转换成数组,然后用array_diff()比较之前的md5列表与当前scandir()取到的md5文件列表,如果有返回结果,说明有文件被修改、删除或添加。

你可以试试目录的mtime和ctime

Linux内核有一个事件驱动的Inotify机制(C文档),支持监听目录和文件变化.
PHP也有这么一个PECL扩展绑定了这套Inotify操作.
http://pecl.php.net/package/i...
http://cn.php.net/manual/zh/b...
或者你用PHP调用inotify-tools提供的命令工具也可以.

综合上面两位兄弟的说法,这个看你的需求,如果是做到实时的就用inofiy,如果是需要时确定类似于提交代码时的文件差异的话,就可以通过md5值等文件指纹的方式。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.