PHPでファイルのコピーと移動方法をご紹介します。
ファイルのコピーはcopy()を、移動はrename()を使います。
copy関数
ファイルをコピーします。
ファイルをコピーする
| 1 2 | // ファイルをvarディレクトリにコピーする copy('file.txt', 'var/file.txt'); | 
以上でコピー完了です。
とても簡単ですね。
copy関数の構文
copy ( コピー元のファイルパス名 , コピー先のファイルパス名 );
この関数は以下のように動作します。
コピー成功 → trueを返す
コピー失敗 → falseを返す
trueかfalseを返すので、if文で条件分岐させてメッセージを表示させると分かりやすいでしょう。
警告:コピー先に同名のファイルがあった場合、上書きされます。
ファイルコピーが成功したらメッセージを表示
上記のサンプルだとコピーできても、成功したかどうか分かりませんね。
if文で成功した場合、失敗した場合それぞれにメッセージを表示させると分かりやすいでしょう。
| 1 2 3 4 5 6 7 8 9 10 11 12 | // varディレクトリにコピーする if (copy('file.txt', 'var/file.txt')) {   // コピーが成功した場合に表示される   echo 'コピーしました。'; } else {   // コピーが失敗した場合に表示される   echo 'コピーできません!'; } | 
コピーしました。
上記メッセージが表示されたので、ファイルコピーが成功したようです。
if文の条件式にcopy()を指定すると、実際にコピーされ、メッセージが表示されます。
rename関数
ファイルをリネームします。
ファイルを移動する
| 1 2 | // ファイルをvarディレクトリに移動する rename('file.txt', 'var/file.txt'); | 
以上で移動できます。
rename関数の構文
rename ( 元のファイルパス名 , リネーム後のファイルパス名 );
rename()はファイル名を変更する関数ですが、リネーム後のファイルパス名に移動したいディレクトリを指定することで、実際にそのディレクトリにファイルが生成されるため、結果的に移動したことになります。
元のファイル名は変更されて消えるため、元あった場所からファイルが消えることになります。
この関数は以下のように動作します。
コピー成功 → trueを返す
コピー失敗 → falseを返す
trueかfalseを返すので、if文で条件分岐させてメッセージを表示させると分かりやすいでしょう。
警告:移動先に同名のファイルがあった場合、上書きされます。
ファイル移動が成功したらメッセージを表示
| 1 2 3 4 5 6 7 8 9 10 11 12 | // varディレクトリに移動する if (rename('file.txt', 'var/file.txt')) {   // 移動が成功したら表示される   echo '移動しました。'; } else {   // 移動に失敗したら表示される   echo '移動できない!'; } | 
移動しました。
上記メッセージが表示されたので、ファイルの移動が成功したようです。
if文の条件式にrename()を指定すると、実際にファイルが移動し、さらにメッセージが表示されます。

