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, но это вводит дополнительные затраты на вызов оболочки и менее переносимо.