2011-07-13 15 views
1

私は、PHPでcronジョブを作成して、新しくアップロードされたファイルをサーバーで検索しようとしています。毎晩サーバーはcsvファイルを追加します。これはローカルサーバーに引き込まれ、私のデータベースに挿入されなければなりません。毎晩新しいファイルのディレクトリをスキャンする方法を理解することを除いて、私はcsvファイルを読み込み、データベースに挿入することができます。誰かがこれについて行くための一般的な示唆を持っていますか?PHPで新しく追加されたファイルの検索サーバー

+0

一般的に、PHPプログラムは一時的なものです。彼らは仕事を実行し、死ぬ - 彼らは何かが起こるのを待つことはありません。したがって、あなたの* nix環境でcronjobを作ったり、PHPスクリプトを呼び出したり、無料のcronjobサービスを利用したりするのが最善の方法です。 – kba

+1

@クリスチャン・アントンゼン:ちょうど、cronはすでにタグの一部であった; – hakre

+0

の複製可能[最新のアップロードされた画像を最初に表示するにはどうすればよいですか? (PHP + CSS)](http://stackoverflow.com/questions/6557980/how-can-i-display-latest-uploaded-image-first-phpcss) – hakre

答えて

1

アルゴリズム:

  1. 、ディレクトリをスキャン日付でファイルを注文し、その後のスキャンで最新のファイル
  2. の日付を記録し、記録した日付
  3. で最新のファイルの日付を比較
  4. 日付が新しい場合は、新しいファイルがアップロードされています。
1

あなたが技術的に裸のPHPでそれを行うことができますが、私はfindコマンドのために行くだろう:

scandirを使用して
$files = explode("\0",`find /path/to/dir -mtime -1 -iname '*.csv' -print0`); 
0

、すべてのファイルを含む配列$allFilesを作ります。ディレクトリ内のすべての既存ファイルを含む別の配列$oldFilesを作成します。その後、array_diff($allFiles, oldFiles)を実行すると、新しいファイルのみを含む配列が生成されます。

関連する問題