Проверка существования директории

PHP:
Проверка существования директории

Как это сделать:

В PHP is_dir() проверяет, существует ли директория:

$directory = "/path/to/dir";

if (is_dir($directory)) {
    echo "Директория существует.";
} else {
    echo "Директории не существует.";
}

Пример вывода:

Директория существует.

Или, если директории действительно нет:

Директории не существует.

Чтобы подавить ошибки и использовать более детальную проверку, сочетайте is_dir() с функцией file_exists():

$directory = "/path/to/dir";

if (file_exists($directory) && is_dir($directory)) {
    echo "Директория существует и является директорией.";
} else {
    echo "Директории не существует или это файл.";
}

Подробнее

is_dir() существует в PHP с версии 4.0.0, позволяя проверять существование директории перед операциями, которые могут завершиться неудачей или вызвать ошибки. Не путайте с file_exists(), которая проверяет существование как файлов, так и директорий, is_dir() специфична для директорий.

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

Под капотом is_dir() выполняет системный вызов к основной файловой системе, что может быть более затратным с точки зрения операций ввода-вывода, особенно для удаленных или виртуальных файловых систем. Кэширование результатов или структурирование кода для минимизации проверок на существование может оптимизировать производительность.

Одной из альтернатив, особенно актуальной в системах, подобных Unix, является использование exec() с системной командой вроде ls или test -d, но это вводит дополнительные затраты на вызов оболочки и менее переносимо.

Смотрите также