Рекурсивно создавать файлы и папки

Я получил массив, содержащий имена путей и имена файлов

['css/demo/main.css', 'home.css', 'admin/main.css','account'] 

Я хочу создать эти файлы и папки, если они еще не существуют. Перезапишите их, если они уже существуют.

Related of "Рекурсивно создавать файлы и папки"

Для каждого из этих путей вам нужно будет указать, является ли это файлом или каталогом. Или вы можете сделать свой сценарий предполагать, что путь указывает на файл, когда базовое имя (последняя часть пути) содержит точку.

Для создания каталога рекурсивно просто:

 mkdir(dirname($path), 0755, true); // $path is a file mkdir($path, 0755, true); // $path is a directory 

0755 – выражение разрешения файла, вы можете прочитать об этом здесь: http://ch.php.net/manual/en/function.chmod.php

 <?php function mkpath($path) { if(@mkdir($path) or file_exists($path)) return true; return (mkpath(dirname($path)) and mkdir($path)); } ?> 

Это делает пути рекурсивно.

Я просто использовал простой способ взорвать строку и перестроить и проверить, является ли файл или каталог

 public function mkdirRecursive($path) { $str = explode(DIRECTORY_SEPARATOR, $path); $dir = ''; foreach ($str as $part) { $dir .= DIRECTORY_SEPARATOR. $part ; if (!is_dir($dir) && strlen($dir) > 0 && strpos($dir, ".") == false) { mkdir($dir , 655); }elseif(!file_exists($dir) && strpos($dir, ".") !== false){ touch($dir); } } } 

Наконец, я получил этот метод, и он отлично работает для меня

 shell_exec("mkdir -p ".$your_path);