admin / 30.05.2018

Проверка существования файла на php

Описание:

bool file_exists ( string $filename )

Проверяет наличие указанного файла или каталога.

Список параметров:

filename

Путь к файлу или каталогу.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Возвращаемые значения:

Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

Замечание:

Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.

Внимание!

Если файлы недоступны из-за ограничений, налагаемых безопасным режимом, то данная функция вернет FALSE. Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir.

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание:

Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры:

Пример #1 Проверка существования файла:

$filename = ‘/path/to/foo.txt’; if (file_exists($filename)) { echo "Файл $filename существует"; } else { echo "Файл $filename не существует"; }

18.02.2015

file_exists — Проверяет наличие указанного файла или каталога

file_exists

(PHP 3, PHP 4, PHP 5)

file_exists — Проверить наличие указанного файла или каталога

Описание

bool file_exists ( string filename )

Возвращзает , если файл или каталог с именем, указанным в параметре filename, существует; возвращает в обратном случае.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные или .

Пример 1. Проверка существования файла

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описания функций is_readable(), is_writable(), is_file() и file().

Смотрите также:
Все функции файл
Описание на ru2.php.net
Описание на php.ru

Вам нужно имя файла в кавычках как минимум (как строка):

Кроме того, убедитесь, что правильно проверен. И тогда он будет работать только тогда, когда активируется в вашей конфигурации PHP


Попробуйте вот так:


Сначала вам нужно понять: у вас нет файлов .
Файл является объектом файловой системы , но вы делаете свой запрос с использованием протокола HTTP, который не поддерживает файлы, кроме URL-адресов.

Таким образом, вы должны запросить неиспользуемый файл, используя ваш браузер, и посмотреть код ответа.

PHP, проверка существования/наличия удаленного файла

если это не 404, вы не можете использовать какие-либо обертки, чтобы увидеть, существует ли файл, и вы должны запросить свой cdn, используя какой-либо другой протокол, например FTP


Вот простейший способ проверить, существует ли файл:


Существует большая разница между и .

php.net/manual/en/function.is-file.php возвращает true для (обычных) файлов:

Возвращает TRUE, если имя файла существует и является обычным файлом, в противном случае FALSE .

возвращает true для обоих файлов и каталогов:

Возвращает TRUE, если существует файл или каталог, указанный по имени файла; FALSE в противном случае.

Примечание.Для получения дополнительной информации по этому вопросу также проверьте этот вопрос с использованием .


вы можете использовать cURL. Вы можете получить cURL только для того, чтобы дать вам заголовки, а не тело, которое могло бы сделать его быстрее. Плохой домен всегда может занять некоторое время, потому что вы будете ждать запроса на тайм-аут; вы, вероятно, можете изменить длину таймаута, используя cURL.

Вот пример:


попробуй это :


читает не только файлы, но и пути. поэтому, когда пуст, команда будет работать так, как если бы она была написана следующим образом:

если каталог / images / существует, функция все равно вернет .

Обычно я пишу это так:


Если вы используете завиток, вы можете попробовать следующий скрипт:

}

Ссылка URL: https://hungred.com/how-to/php-check-remote-email-url-image-link-exist/


Возвращаемые значения

Возвращает , если файл или каталог, указанный параметром , существует, иначе возвращает .

Замечание:

Данная функция возвращает для символических ссылок, указывающих на несуществующие файлы.

Как в PHP проверить директорию на существование и удалить её?

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Проверка существования файла

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня .

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

  • is_readable() — Определяет существование файла и доступен ли он для чтения
  • is_writable() — Определяет, доступен ли файл для записи
  • is_file() — Определяет, является ли файл обычным файлом
  • file() — Читает содержимое файла и помещает его в массив

Вернуться к: Файловая система

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

В PHP есть два способа проверки директорий на существование. Первый заключается в использовании функции file_exists(). Принцип её работы обсуждался ранее в статье о правах доступа. Напомним, что функция принимает всего один строковой параметр — путь в файловой системе. Несмотря на то, что в названии содержится слово «file» она замечательно работает с директориями.

Второй способ связан со встроенной функцией is_dir(). Она, как и file_exists() принимает относительный или абсолютный путь расположения директории. Однако помимо проверки на существование также будет подтвержден тот факт, что по данному пути находится именно директория, а не файл. Если строка описывает место расположения жесткой или символической ссылки, is_dir() осуществит переход по ней и будет анализировать конечную точку пути. В случае успеха возвращается логическое значение true, а в случае неудачи false.

//создадим новую директорию в корне сайта для проверок $dirName = «{$_SERVER[‘DOCUMENT_ROOT’]}/directory»; if (!file_exists($dirName)) {     mkdir($dirName); } var_dump(file_exists($dirName)); //Рузультат: bool(true) var_dump(is_dir($dirName)); //Рузультат: bool(true)

Заметка
Функции, отвечающие за проверку директорий на существование, могут возвращать false при отсутствии прав доступа. Такие вещи не зависят от PHP-скрипта, это уровень ответственности операционной системы.

Удаление директории

Для удаления директории в PHP используется функция rmdir(). В качестве первого параметра ей необходимо передать место расположения каталога. По аналогии с вышеизложенными примерами будут возвращены логические значения true или false.

Удаление директории может показаться простой задачей. Однако в большинстве случаев это не так. Функция rmdir() работает только с пустым каталогом и возвращает false, если внутри содержится что-то ещё. В таком случае нужно использовать рекурсивное удаление.

//создадим временную директорию для демонстрации $dirName = «{$_SERVER[‘DOCUMENT_ROOT’]}/directory»; if (!file_exists($dirName)) {     mkdir($dirName); } if (rmdir($dirName)) {     echo ‘Директория удалена успешно’; } else {     echo ‘Невозможно удалить директорию’; }

Рекурсивное удаление

Простого способа удаления заполненной директории не существует.

Ниже мы приводим два примера реализации подобного механизма. Его можно сохранить в виде функции и использовать в любой части программного кода.

Первым способом удаления директории в PHP является использование рекурсивной функции. То есть функции, которая вызывает сама себя пока выполняются определенные условия. Взгляните на пример, приведенный ниже. Он довольно прост для понимания.

Проверка существования файла на php

Мы используем стандартную функцию scandir() для перебора всего содержимого каталога. Если мы натыкаемся на файл, вызываем функцию unlink(), а если на другую директорию, используем её имя для рекурсивного вызова.

//пример функции рекурсивного удаления заданной директории function deleteDirectory($directoryName) {     $files = array_diff(scandir($directoryName), [‘.’, ‘..’]);     foreach ($files as $file) {         if (is_dir(«$directoryName/$file»)) {             deleteDirectory(«$directoryName/$file»);         } else {             unlink(«$directoryName/$file»);         }     }     return rmdir($directoryName); }

Также в PHP есть два встроенных класса RecursiveDirectoryIterator и RecursiveIteratorIterator. Их можно использовать для перебора всех уровней вложенности указанной директории. Обратите внимание, при создании экземпляра класса RecursiveIteratorIterator мы используем второй параметр RecursiveIteratorIterator::CHILD_FIRST. Он заставляет проходить в цикле все файлы и каталоги, начиная от самых вложенных. Таким образом, можно обойтись без явного вызова рекурсивной функции.

//пример функции не использующей рекурсивные вызовы function deleteDirectory($directoryName) {     $iterator = new RecursiveDirectoryIterator($directoryName);     $files = new RecursiveIteratorIterator(         $iterator, RecursiveIteratorIterator::CHILD_FIRST     );     foreach ($files as $file) {         if (in_array($file->getFilename(), [‘..’, ‘.’])) {             continue;         }         ($file->isDir()) ? rmdir($file) : unlink($file);     }     rmdir($directoryName); }

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*