2
mkdir ("dir1/{dir1-1,dir1-2}",0755,TRUE);

このコマンドは、dir1の2つのサブフォルダーとしてdir1-1とdir1-2を作成する代わりに、「{dir1-1、dir1-2}」という単一のサブフォルダーを使用してフォルダーdir1を作成します。

上記のように単一のmkdirコマンドからこれを機能させる方法はありますか?

4

2 に答える 2

6

PHPは、シェルと同じようにブレース拡張をサポートしていません。複数のディレクトリを作成する場合は、mkdir()複数回呼び出す必要があり、ループすることで簡単に行うことができます。

TRUE3番目の引数として-に渡すことができますmkdir()。これは、ツリーをバックアップするすべてのディレクトリが存在せず、親が書き込み可能である場合にも作成されることを意味します。ループで動作している場合は、すべての呼び出しに安全に渡すことができTRUEます。特定のディレクトリの最初の反復でそれが作成され、その後の呼び出しによる悪影響はありません。

例えば:

$toCreate = array(
  'dir1/dir1-1',
  'dir1/dir1-2'
);

$permissions = 0755;

foreach ($toCreate as $dir) {
  mkdir($dir, $permissions, TRUE);
}
于 2012-04-27T23:33:53.447 に答える
1

シェルmkdirでできること:

mkdir -p /foo/bar/peng

したがって、php内から外部シェルコマンドを呼び出すだけで済みます。ただし、セキュリティには注意してください。

于 2012-04-27T23:30:39.307 に答える