首頁 >後端開發 >php教程 >有什麼方法能利用php監控資料夾內的檔案的變化

有什麼方法能利用php監控資料夾內的檔案的變化

WBOY
WBOY原創
2016-08-04 09:20:122179瀏覽

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