PHP: fopen для создания папок


Мне нужно знать, есть ли способ создать новую папку, если путь не существует. Когда я пытаюсь открыть() путь, он говорит NO such File or Directory exists, что я пытался открыть файл с помощью "w" и "w+", но он не может создать новую папку. Есть ли способ достичь этого без использования mkdir(). Потому что мне нужно каждый раз извлекать только имена каталогов из пути к mkdir(). Любая помощь будет оценена по достоинству. Спасибо...

Author: Vivek, 2011-03-17

3 answers

Fopen не может создавать каталоги.

Вам нужно будет использовать что-то вроде:

$filename = '/path/to/some/file.txt';
$dirname = dirname($filename);
if (!is_dir($dirname))
{
    mkdir($dirname, 0755, true);
}
 72
Author: qbert220, 2017-09-05 04:50:44

Fopen не создает и не открывает папки, только файлы. Вы должны сначала проверить с помощью is_dir, существует ли он, если не создать его. mkdir имеет опцию рекурсивного создания.

if (!is_dir($myDir)) {
    mkdir($myDir, 0777, true); // true for recursive create
}

Если вы ищете способ открыть каталог и прочитать его содержимое, вам следует заглянуть в раздел DirectoryIterator SPL

 6
Author: ChrisR, 2011-03-17 10:39:19

Вы не можете использовать fopen для создания папок.
Чтобы создать папку, вы должны использовать mkdir

Для операций, которые вы должны повторять каждый раз, существует языковая функция, называемая "определяемые пользователем функции". Наименее известная особенность PHP, как можно сказать, судя по ответам stackoverflow.

 3
Author: Your Common Sense, 2011-03-17 10:46:07