fc2ブログ

PHPで変更したファイル一覧を取得

svnでやっているように

「最後にアップロードしたリビジョン番号」と「今からアップロードするリビジョン番号」の差分をエクスポートしたい!

っと思いPHPで似たような関数をつくってみました。

フリーソフトでもっと便利なものはたくさんあると思いますが、今回はPHPでつくってみましたw

1 /**
2  * 指定した期間以降に更新されたデータ一覧を取得する
3  * @access   public
4  * @param    string 対象の一番親のディレクトリ
5  * @param    string Y-m-d H:i:s形式の時間
6  * @param    string カンマ区切りで除外する一覧
7  * @return   array 対象のファイルリスト
8 ---------------------------------------------------------------------------------------------- */
9  
10 function get_updates($path$date$without='') {
11     if (!is_dir($path) || !$path) {
12         return array();
13     }
14     
15     $without_ptn = implode('|'explode(','str_replace('.''\.'$without)));
16     $ret_array = array();
17     $path = rtrim($path, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
18     foreach (glob($path . '*'as $var) {
19         if (is_dir($var)) {
20             $ret_array = array_merge($ret_array, get_updates($var$date$without));
21         }
22         //それ以外で除外パスでない場合
23         elseif (filemtime($var) >= strtotime($date)) {
24             //除外の場合は無視
25             if ($without_ptn && preg_match('@' . $without_ptn . '$@'$var)) {
26                 continue;
27             }
28             
29             $ret_array[] = $var;
30         }
31     }
32     return $ret_array;
33 }


この関数をつかって、指定した日付以降に更新したファイルリストを取得できます。

あとは、このファイルを所定のディレクトリへエクスポートする機能をつければ、ちょっと便利なツールになります。

ちなみに僕は結構多様してますw

 

お暇でしたら試してみてくださいw

スポンサーサイト



プロフィール

pg103

Author:pg103
とりあえず、いろいろ作ってみようと思っているプログラマーです。

【僕がお気に入りの本】

CakePHP 1.3によるWebアプリケーション開発―オープンソース徹底活用

Web制作の現場で使う jQueryデザイン入門 (WEB PROFESSIONAL)

MySQL全機能バイブル ~現場で役立つAtoZ~

プロのための Linuxシステム構築・運用技術 (Software Design plus)

最新記事
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる