
【PHP】ファイル操作のアレコレ
PHPでファイルやディレクトリ(フォルダ)を操作するコード備忘録
当然ながら、これらの関数は他サイトのものを対象にはできません。※絶対パス(http…)不可。
対象のファイルやディレクトリは、相対パスまたはルートパスで指定します。
★ディレクトリ作成
・ディレクトリの作成:mkdir()
mkdir(作成するディレクトリパス, パーミッション)
★使用例
$dir_root = "../hoge"; // 作成するディレクトリ名 ※1
if(!file_exists($dir_root)){ // ※2
if(mkdir($dir_root, 0777)){
chmod($dir_root, 0777); // ※3
}
}
Code language: PHP (php)
※1:一つ上階層に「hoge」ディレクトリを作成する場合。
※2:mkdir()やchmod()は、指定したディレクトリが既に存在するとエラーになります。
「file_exists()」で指定したディレクトリが存在しないかで確認しましょう。
ここでは否定(!file_exists…)しているので注意。
※3:作成したディレクトリのパーミッションを「chmod()」で確実に変更。
★ディレクトリ削除
・ディレクトリの削除:rmdir()
rmdir(削除するディレクトリパス)
★使用例
function delateAll($target_dir) {
$res = glob($target_dir . '/*');
if(!empty($res)){ // ※2
foreach ($res as $val){
if(is_file($val)){ unlink($val); }
else { delateAll($val); }
} // foreach
rmdir($target_dir);
} else {
// 削除対象がない場合の処理
}
}
delateAll("./hoge/sub"); // 関数「delateAll(削除対象のディレクトリパス)」を実行 ※1
Code language: PHP (php)
※1:「hoge」内の「sub」ディレクトリを削除する場合。
※2:指定したディレクトリが無い場合やディレクトリ内にファイルがあるとエラーになります。
「ファイル一覧の取得:grop()」と「ファイル削除:unlink()」を組み合わせて、対象ディレクトリを空にしてから削除しましょう。
★ファイル削除
・ファイルを削除する:unlink()
unlink
(削除するファイルのパス)
unlink
(削除するファイルのパス)★使用例
$target = "./hoge/foo.txt"; // 削除するファイル名 ※1
if(file_exists($target)){ // ※2
if(unlink($target)){
// 削除成功時の処理
}
} else {
// 削除対象がない場合の処理
}
Code language: PHP (php)
※1:「hoge」ディレクトリ内の「foo.txt」ファイルを削除する場合。
ディレクトリを削除する場合、
※2:削除対象のファイルが存在しないとエラーになるので注意。
「file_exists()」で対象ディレクトリが存在しているか確認しましょう。
参考サイト:https://itsakura.com/php-file-copy#s6
コメントはお気軽にどうぞ!