人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて質問です。

あらかじめ指定してあるフォルダ(もちろん内部のファイルを全て含む)をコピーして
別のあらかじめ指定したフォルダの中に貼り付けるするというスクリプトを作成してください。
ただし、フォルダの名前はその日の日時になるようにしてください。

例えば、コピー元ををCドライブ内の「とびうお」内の「ももんが」を、
貼り付ける先をDドライブ内の「はてな」内と指定しておき、
2008年2月16日の17時24分にこのスクリプトを実行したとします。
「はてな」フォルダは「080216_17」という名前になり、
「ももんが」の中に貼り付けられるということです。

質問者はまだPHPの学習を初めて間もない初心者なので、
自分のやりたいことをうまく質問することもままなりません。
不明瞭な場合はその旨コメントをいただければ幸いです。
また、回答は初心者にもわかるようご配慮くださいますようお願いします。

以上、よろしくお願いします。




●質問者: taroemon
●カテゴリ:コンピュータ
✍キーワード:2008年 24 2月16日 PHP うご
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● hatettyo
●80ポイント

質問の内容をそのままスクリプトにすると下記の通りです。

<?php
//あらかじめ指定された元フォルダ名
$dir = "とびうお";

//あらかじめ指定されたコピー先フォルダ名
$new_dir = "はてな";

//とびうお内にあるファイル・フォルダ一覧を取得します。
$list = scandir($dir);

//現在の日時を取得し、フォルダ名の形式にしておきます。
$tmp_dir = date("ymd_H",time());

//コピー先のフォルダ名を日時のフォルダ名に変更します。
rename($new_dir,$tmp_dir);

foreach($list as $value){
 //元フォルダ内を一つ一つチェックしてファイルであればコピーします。
 if(is_file($dir."/".$value)){
 copy($value,$tmp_dir.$value);
 }
}
?>

このスクリプトだとコピー元のフォルダ内にあるフォルダはコピーされません。

フォルダもコピーする場合は

 if(is_dir($dir."/".$value)){
 copy($value,$tmp_dir.$value);
 }

をforeach内に加えて下さい。

更にその中のファイルもコピーするのであれば

再帰関数を作る必要があります。

◎質問者からの返答

ご回答ありがとうございます。

大変参考になりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ