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
スポンサーサイト