ひでメモ

プログラムについて勉強したことを書きます。たぶん。

【PHP】unlink()・mkdir() のちょっとした便利な使い方

ディレクトリ内の全ファイル削除

rmdir()ディレクトリが空でないと使えないため、事前にディレクトリ内のファイルをすべて削除しようと思い PHP のマニュアルを調べていました。 するとunlink()のページのコメント に下記のようなコードを発見。

array_map('unlink', glob("some/dir/*.txt"));

PHP: unlink - Manual

unlink()自体は単体のファイルしか削除できないけどglob()と組み合わせることで、ディレクトリ内のファイルをすべて削除できました。
1行で書けるし応用もしやすそうなので覚えておきたいです。

ディレクトリを指定した階層まで作成する

もうひとつ PHP の関数のネタを。

mkdir()はコマンドと同じ名前なので指定した階層まで一気にディレクトリを作ってくれないのかと思い込んでいましたが、マニュアルを見るとどうやらオプション指定すればできるようです。
まじか…

PHP: mkdir - Manual

mkdir(
    string $directory,
    int $permissions = 0777,
    bool $recursive = false,
    resource $context = ?
): bool

$recursiveという3つ目の引数をtrueにすれば指定した階層までディレクトリを作成してくれるとのこと。

mkdir('hoge/fuga/dir', 0755, true);

みたいに書けば途中のhoge/fugaというディレクトリ階層がなかったとしても一気にディレクトリを作ってくれました。

マニュアルちゃんと読むと勉強になりますね