mkdir ("dir1/{dir1-1,dir1-2}",0755,TRUE);
このコマンドは、dir1の2つのサブフォルダーとしてdir1-1とdir1-2を作成する代わりに、「{dir1-1、dir1-2}」という単一のサブフォルダーを使用してフォルダーdir1を作成します。
上記のように単一のmkdirコマンドからこれを機能させる方法はありますか?
PHPは、シェルと同じようにブレース拡張をサポートしていません。複数のディレクトリを作成する場合は、mkdir()
複数回呼び出す必要があり、ループすることで簡単に行うことができます。
TRUE
3番目の引数として-に渡すことができますmkdir()
。これは、ツリーをバックアップするすべてのディレクトリが存在せず、親が書き込み可能である場合にも作成されることを意味します。ループで動作している場合は、すべての呼び出しに安全に渡すことができTRUE
ます。特定のディレクトリの最初の反復でそれが作成され、その後の呼び出しによる悪影響はありません。
例えば:
$toCreate = array(
'dir1/dir1-1',
'dir1/dir1-2'
);
$permissions = 0755;
foreach ($toCreate as $dir) {
mkdir($dir, $permissions, TRUE);
}
シェルmkdirでできること:
mkdir -p /foo/bar/peng
したがって、php内から外部シェルコマンドを呼び出すだけで済みます。ただし、セキュリティには注意してください。