【PHP】unlink()・mkdir() のちょっとした便利な使い方
ディレクトリ内の全ファイル削除
rmdir()
はディレクトリが空でないと使えないため、事前にディレクトリ内のファイルをすべて削除しようと思い PHP のマニュアルを調べていました。
するとunlink()
のページのコメント に下記のようなコードを発見。
array_map('unlink', glob("some/dir/*.txt"));
unlink()
自体は単体のファイルしか削除できないけどglob()
と組み合わせることで、ディレクトリ内のファイルをすべて削除できました。
1行で書けるし応用もしやすそうなので覚えておきたいです。
ディレクトリを指定した階層まで作成する
もうひとつ PHP の関数のネタを。
mkdir()
はコマンドと同じ名前なので指定した階層まで一気にディレクトリを作ってくれないのかと思い込んでいましたが、マニュアルを見るとどうやらオプション指定すればできるようです。
まじか…
mkdir(
string $directory,
int $permissions = 0777,
bool $recursive = false,
resource $context = ?
): bool
$recursive
という3つ目の引数をtrue
にすれば指定した階層までディレクトリを作成してくれるとのこと。
mkdir('hoge/fuga/dir', 0755, true);
みたいに書けば途中のhoge/fuga
というディレクトリ階層がなかったとしても一気にディレクトリを作ってくれました。
マニュアルちゃんと読むと勉強になりますね