Обнаружение ошибки rmdir с помощью php - PullRequest
3 голосов
/ 25 февраля 2012

rmdir () отображает несколько предупреждений о том, что dir не существует или разрешения не разрешены.Как определить причину сбоя и отреагировать на него?

Ответы [ 2 ]

6 голосов
/ 25 февраля 2012

rmdir не генерирует Exception, поэтому вы не можете поймать их с помощью try / catch. Что вы можете сделать, это использовать error_get_last , чтобы сделать то, что вам нужно.

Попробуйте что-то вроде этого:

if (!@rmdir('/root')) {
    $error = error_get_last();

    if (preg_match('/something/', $error['message'])) {
        // do something
    } elseif (preg_match('/somethingelse/', $error['message'])) {
        // do something
    }
}
0 голосов
/ 25 февраля 2012

Можно заранее проверить, разрешено ли вам выполнять какие-либо действия, например file_exists() и is_ dir(), чтобы проверить, существует ли каталог, и fileperms() или просто is_ writable(), чтобы проверить, можете ли вы написать каталог.

Вы также можете попытаться «поймать» ошибку, как за исключением. Вы можете указать собственный обработчик ошибок, но это выглядит немного излишним.

...