Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

$filename = '/path/to/some/file.txt';
$dirname = dirname($filename);
if (!is_dir($dirname))
{
    mkdir($dirname, 0755, true);
}

Ответ 2

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

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

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

Ответ 3

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

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