mkdir ("dir1/{dir1-1,dir1-2}",0755,TRUE);
這條命令創建,而不是創建dir1-1和dir1-2作爲兩個子文件夾名爲「{dir1-1,dir1-2}」的單個子文件夾的文件夾DIR1 DIR1。MKDIR創建多個子目錄的PHP /阿帕奇
任何想法如何從一個單一的mkdir命令如上得到這個工作?
mkdir ("dir1/{dir1-1,dir1-2}",0755,TRUE);
這條命令創建,而不是創建dir1-1和dir1-2作爲兩個子文件夾名爲「{dir1-1,dir1-2}」的單個子文件夾的文件夾DIR1 DIR1。MKDIR創建多個子目錄的PHP /阿帕奇
任何想法如何從一個單一的mkdir命令如上得到這個工作?
PHP不支持與shell一樣的大括號擴展。如果你想創建多個目錄,你將不得不多次調用mkdir()
,你可以通過循環來輕鬆完成。
您可以將TRUE
作爲第三個參數傳遞給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中調用外部shell命令。但要小心安全。
簡單:你不能。什麼讓你覺得你可以?爲什麼不直接調用'mkdir()'兩次? – DaveRandom 2012-04-27 23:16:13
遞歸.... – 2012-04-27 23:17:36
@DaveRandom這是什麼讓我覺得我可以:http://developmentality.wordpress.com/2010/04/11/advanced-mkdir-and-brace-expansion-fun/除了它不工作對於我來說,這個例子看起來是可能的。另外,假設你有10個子目錄,在一個mkdir命令中這樣做效率更高,更乾淨。 – Maverick 2012-04-27 23:20:06