「ルートディレクトリ内の全てのファイルの中でファイル名に"1111"及び"2222"と言う文字列が含まれるファイルを./333/444ディレクトリに同じファイル名が無ければコピーする」
というスクリプト(下記qqq.php)を作りましたが、
「ルートディレクトリ内の全てのファイルの中でファイル名に"1111"及び"2222"と言う文字列が含まれるファイルの中で最もファイル更新時刻が新しいものだけを./333/444ディレクトリに同じファイル名が無ければコピーする」
と変えたいのですがどうも上手くいきません。
この『・・・文字列が含まれるファイルの中で最もファイル更新時刻が新しいものだけを・・・』の部分につきまして、ご教授ください。
スクリプトを記載していただけるととても助かります。
どうか宜しくお願いいたします。
*********************
qqq.php
<?PHP
if ($dir = opendir("./")) {
while (($file = readdir($dir)) !== false) {
if(preg_match("/1111/",$file)) {
if(preg_match("/2222/",$file)) {
$to="./333/444/".$file;
if(!file_exists($to)) copy("./".$file,$to);
}
}
}
closedir($dir);
}
?>
No.1
- 回答日時:
> 『・・・文字列が含まれるファイルの中で最もファイル更新時刻が新しいものだけを・・・』
ファイルの更新時刻はfilemtimeで取得出来ます。
int filemtime ( string filename )
(intはUNIXタイムスタンプ)
http://www.php.net/manual/ja/function.filemtime. …
qqq.phpのwhileの中で最新更新のファイルを求めて、後でコピーさせればいいと思います。
No.2
- 回答日時:
「ルートディレクトリ内の全てのファイルの中でファイル名に"1111"及び"2222"と言う文字列が含まれるファイルの中で最もファイル更新時刻が新しいものだけを./333/444ディレクトリに同じファイル名が無ければコピーする」
を、文章通りに作るとしたら
1.opendirする
2.readdirでファイル名を拾う
3.ファイル名が対象になる名前か調べ、対象ならfilemtimeでファイル更新時刻を得て、配列に格納する
4.全ファイルについてreaddirが終ったらclosedirする
5.配列を最初から最後まで調べ、最も新しいものを見付ける
6.コピー先に同名ファイルが無いか調べ、無い場合のみコピーを行う
と言う事になります。
>スクリプトを記載していただけるととても助かります。
残念ですが「試験問題を解いて下さい」「実際に動くプログラムを作って下さい」「スクリプトを記載して下さい」など、回答者に何かの作業を強いる質問は、このサイトでは禁止事項であり、そういう質問を投稿すると削除されます。
No.3ベストアンサー
- 回答日時:
追加と訂正。
良く考えたら配列は要りませんね。
1.最も新しいファイルのファイル日付を覚えておく変数を「もっとも過去の日付」に、最も新しいファイルのファイル名を覚えておく変数を「空文字列」に初期化する
2.opendirする
3.readdirでファイル名を拾う
4.ファイル名が対象になる名前か調べる
5.対象ならfilemtimeでファイル更新時刻を得て、日付を覚えておく変数と比較する
6.変数よりファイルの更新時刻の方が新しいなら、日付を覚えておく変数にファイルの更新時刻を格納し、ファイル名を覚えておく変数にファイル名を格納する
7.全ファイルについてreaddirが終ったらclosedirする
8.ファイル名を覚えておく変数に入っている値が「空文字列」なら何もしない
9.ファイル名を覚えておく変数に入っているファイル名が対象なので、コピー先に同名ファイルが無いか調べ、無い場合のみコピーを行う
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) セルの値からファイルを複数作りたい2 3 2022/10/07 15:54
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらはただの直列処理ですか?
-
phpでcookieがうまく保存されない
-
PHPで画像の渡しが上手く行きま...
-
PHPでこのコード自体に意味は無...
-
Q&Aサイトを作成していてURLの...
-
クエリObjectをforeachで回す時...
-
phpでPEAR::DBを使っているので...
-
reuterの記事をbeautiful.soup....
-
phpでクラスのメソッドで同名の...
-
PHP8を使うと、大量のWarningが...
-
SFTPなどは使わないホームペー...
-
awsにApacheとPHPを入れて、何...
-
phpのクラスメソッドの定義が長...
-
PHPで訪問回数を表示するカウン...
-
PHPを使って、別サイトの一部を...
-
jpgraphで表示されない
-
PHP MySQLに画像を直接保存
-
PHPとHTML+Xamppの掲示板で画像...
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
重複を防ぐ記述について教えて...
-
index.phpって何ですか? 具体...
-
awsにApacheとPHPを入れて、何...
-
phpでPEAR::DBを使っているので...
-
php 確認表示画面で値をSESSION...
-
PHPでユーザー情報を入力して簡...
-
ワードプレスサイト PHP8.0.25...
-
php 完了画面の送信メールのコ...
-
SFTPなどは使わないホームペー...
-
PHPのセッション有効期限について
-
csvファイルについて教えて下さ...
-
PHPとHTML+Xamppの掲示板で画像...
-
PHPで訪問回数を表示するカウン...
-
ファイルアップロードに関して...
-
掲示板を作成しておりアップロ...
-
Q&Aサイトを作成していてURLの...
おすすめ情報