2012-06-16 5 views
1

PHP mkdir возвращает false при сбое. Отказ может быть:различают причину ошибки mkdir

  • Папка уже существует
  • Некоторые другие ошибки, разрешения ошибка может быть?

Есть ли способ определить, произошел ли отказ по одной причине, а не по другой? Я хочу, чтобы мой скрипт мог продолжить работу, если mkdir возвращает false, если папка уже существует, но обрабатывайте ее иначе, если это была некоторая другая ошибка.

+0

Включить уведомление об ошибке –

ответ

4

Несомненно, просто проверьте, существует ли каталог, используя is_dir() после того, как mkdir() не работает.

Это скажет вам, существует ли каталог, однако это может быть неопровержимым, поскольку разрешения также могут помешать вам проверить это (я считаю, что родительским каталогам требуется разрешение +x, чтобы перейти в подкаталоги).

+0

отлично работает! Спасибо! :) – Obay

+2

Я бы использовал 'is_dir()' _before_ 'mkdir()'. Если каталог уже существует, вы можете отказаться от его создания. Это микро-оптимизация, но я считаю, что это делает код более понятным. «if not is_dir, затем mkdir». – Herbert

Смежные вопросы