2012-03-09 19 views
2

PHPやNodeのフォルダやファイルの変更(イベント別)を直接聞くことができます。フォルダとファイルを聞く(変更)

:フォルダ/userを聞く必要があります。このディレクトリにファイルを追加すると、PHPやNodeはその情報を受け取り、例えばPathEvent::fileAdded("/user/user.profile")を実行します。フォルダの名前を変更すると、PathEvent::pathRenamed("/user/save1", "/user/save2")が実行されます。

私はPHPにNodeのようなイベントシステムがないことを知っています。しかしPHPの場合、前回のチェックから変更があったメソッド(例えば、私が現在知らないメソッド)を実行することができます。

まあ...私は検索を開始するためだけの方法が必要です、私はこの検索の用語は正確にはわかりません。私に例を示すことができれば、それも素晴らしいことでしょう! :P

答えて

2

Node.jsはこの機能を提供します。あなたはこれを読むことができますhere

簡単な例:

var fs = require('fs'); 

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

注:

は、すべてのプラットフォームでサポートされていないコールバックでfilename引数を提供し、ディレクトリを見て(現在はそれが唯一のLinuxおよびWindows上でサポートされています)。サポートされているプラ​​ットフォームであっても、ファイル名は必ずしも提供されるとは限りません。したがって、filename引数がコールバックで常に提供され、nullの場合はフォールバック論理を持つと仮定しないでください。

1

ファイルのアクセス/変更/追加などの方法にアクセスできる場合は、DBにテーブルを2つ作成します。 1つは変更の種類、1つは変更とそのタイムスタンプです。

誰かが何かファイルに何かをしたとき、すなわち名前を変更したとき。ラッパーを経由して、現在のタイムスタンプでdbに挿入されます。 PHPスクリプトを実行すると、最後からすべての変更を取得できます。従って

select * from Log where ModifiedOn > $lastRunです。

これは、DBテーブルの変更を追跡する方法です。私はそれが助けて欲しい

+1

ありがとうございました。しかし、それはループで実行されるので、私は配列を使用することができます。しかし、問題はPHPでそれを行うネイティブな方法です。毎回変更によって検索するすべてのファイルをスキャンする必要はありません。 –

関連する問題