Содержание
Проверяем, существует директория или нет? Если такой директории нет, создает ее.
Функция is_dir(), позволяет узнать, является ли имя файла директорией. Если такой директории нет, то создаем новую с помощью функции mkdir().
Функция file_exist(), проверяем существование указанного файла или каталога. Если такой директории нет, то создаем новую с помощью функции mkdir().
(PHP 4, PHP 5, PHP 7)
file_exists — Проверяет наличие указанного файла или каталога
Описание
Проверяет наличие указанного файла или каталога.
Список параметров
Путь к файлу или каталогу.
На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \computernamesharefilename .
Возвращаемые значения
Возвращает TRUE , если файл или каталог, указанный параметром filename , существует, иначе возвращает FALSE .
Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.
Если файлы недоступны из-за ограничений, налагаемых безопасным режимом, то данная функция вернет FALSE . Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir.
Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.
Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.
Примеры
Пример #1 Проверка существования файла
if ( file_exists ( $filename )) <
echo "Файл $filename существует" ;
> else <
echo "Файл $filename не существует" ;
>
?>
Ошибки
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .
Примечания
Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache() .
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat() , смотрите в Поддерживаемые протоколы и обработчики (wrappers).
Смотрите также
- is_readable() — Определяет существование файла и доступен ли он для чтения
- is_writable() — Определяет, доступен ли файл для записи
- is_file() — Определяет, является ли файл обычным файлом
- file() — Читает содержимое файла и помещает его в массив
Бывают случаи, когда вам необходимо проверить, существует ли указанный файл или нет, например, для того чтобы в последующем совершить с файлом какие-то действия.
Я тоже при разработке модуля столкнулся с этим вопросом. И нашел два варианта решения поставленной задачи.
Проверка существования файла по URL-ссылке
В PHP существует функция «fopen», с помощью которой можно открыть указанный URL.
Что мы делаем? Пытаемся открыть файл, и если нам это удается, значит, файл существует, а противном же случае – файла нет.
А что, если мы имеем не один файл, а несколько, так сказать, массив ссылок? Эта задача как раз и стояла изначально передо мной. И решение уже такой задачи следующее:
В этом случае мы получаем список только тех файлов, которые существуют.
Проверка существования локального файла
Под словом «локальный» подразумевается, что скрипт и файлы для проверки находятся на одном сервере. Если у вас довольно большой массив ссылок – этот вариант самый лучший для решения задачи, так как мы делаем не запрос на сторонний сервер, а сканирование указанных директорий.
В этом способе используется функция «file_exists», и по аналогии с предыдущим вариантом просто заменяется часть скрипта:
И то же самое для массива ссылок:
На что стоит обратить внимание? На то, что этот способ удобен для прогонки файлов, находящихся в пределах нашей файловой системы. Поэтому все ссылки желательно указывать относительные.
Кстати говоря, делая один из заказов, именно этим способом мне удалось просканировать порядка 135 000 файлов всего за пару секунд.