Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Php как проверить существует ли файл


file_exists - Проверяет наличие указанного файла или каталога | Руководство по PHP

(PHP 4, PHP 5, PHP 7)

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

Описание

bool file_exists ( string $filename )

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

filename

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

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

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

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

Замечание:

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

Замечание:

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

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

Примеры

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

<?php
$filename = '/path/to/foo.txt';

if (

file_exists($filename)) {
    echo "Файл $filename существует";
} else {
    echo "Файл $filename не существует";
}
?>

Ошибки

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

Примечания

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

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

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

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

Как проверить существование файла на PHP?

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

Я тоже при разработке модуля столкнулся с этим вопросом. И нашел два варианта решения поставленной задачи.

Проверка существования файла по URL-ссылке

В PHP существует функция «fopen», с помощью которой можно открыть указанный URL.

Что мы делаем? Пытаемся открыть файл, и если нам это удается, значит, файл существует, а противном же случае – файла нет.

Реализация:

<?php
 
 $file = "https://www.pandoge.com/logo.png"; // Ссылка на файл
 
 if(@fopen($file, "r")) {
 
 echo "Файл существует!";
 
 } else {
 
 echo "Файл отсутствует!";
 
 }
 
 ?>

А что, если мы имеем не один файл, а несколько, так сказать, массив ссылок? Эта задача как раз и стояла изначально передо мной. И решение уже такой задачи следующее:

<?php
 
 $images_all = [
 "https://www.pandoge.com/logo.png",
 "https://www.pandoge.com/logo_1.png",
 "https://www.pandoge.com/logo_2.png",
 "https://www.pandoge.com/logo_3.png",
 "https://www.pandoge.com/logo_4.png",
 "https://www.pandoge.com/logo_5.png"
 ]; // Исходный массив ссылок
 
 foreach($images_all as $image) {
 
 if(@fopen($image, "r")) {
 
 echo $image;
 
 }
 
 }
 
 ?>

В этом случае мы получаем список только тех файлов, которые существуют.

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

Под словом «локальный» подразумевается, что скрипт и файлы для проверки находятся на одном сервере. Если у вас довольно большой массив ссылок – этот вариант самый лучший для решения задачи, так как мы делаем не запрос на сторонний сервер, а сканирование указанных директорий.

В этом способе используется функция «file_exists», и по аналогии с предыдущим вариантом просто заменяется часть скрипта:

<?php
 
 $file = "/logo.png"; // Ссылка на файл
 
 if(file_exists($file)) {
 
 echo "Файл существует!";
 
 } else {
 
 echo "Файл отсутствует!";
 
 }
 
 ?>


И то же самое для массива ссылок:

<?php
 
 $images_all = [
 "/logo.png",
 "/logo_1.png",
 "/logo_2.png",
 "/logo_3.png",
 "/logo_4.png",
 "/logo_5.png"
 ]; // Исходный массив ссылок
 
 foreach($images_all as $image) {
 
 if(file_exists($image)) {
 
 echo $image;
 
 }
 
 }
 
 ?>

На что стоит обратить внимание? На то, что этот способ удобен для прогонки файлов, находящихся в пределах нашей файловой системы. Поэтому все ссылки желательно указывать относительные.

Кстати говоря, делая один из заказов, именно этим способом мне удалось просканировать порядка 135 000 файлов всего за пару секунд.

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

(PHP 4, PHP 5, PHP 7)

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

Описание

file_exists ( string $filename ) : bool

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

filename

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

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

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

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

Замечание:

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

Замечание:

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

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

Примеры

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

<?php
$filename = '/path/to/foo.txt';

if (

file_exists($filename)) {
    echo "Файл $filename существует";
} else {
    echo "Файл $filename не существует";
}
?>

Ошибки

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

Примечания

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

Подсказка

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

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

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

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

У Вас в браузере заблокирован JavaScript. Разрешите JavaScript для работы сайта!

(PHP 3, PHP 4, PHP 5)

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

Описание

bool file_exists ( string filename )

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

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

Пример 1. Проверка существования файла
$filename = '/path/to/foo.txt'; if (file_exists($filename)) {     echo "The file $filename exists"; } else {     echo "The file $filename does not exist"; }

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

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

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

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

PHP: как проверить, существует ли файл изображения?

вы должны использовать абсолютный путь, чтобы увидеть, если файл существует.

$abs_path = '/var/www/example.com/public_html/images/'; $file_url = 'http://www.example.com/images/' . $filename; if (file_exists($abs_path . $filename)) { echo "The file exists. URL:" . $file_url; } else { echo "The file does not exist"; } 

если вы пишете для CMS или PHP framework, то, насколько я знаю, все они определили константу для корневого пути документа.

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

пример Wordpress:

$image_path = ABSPATH . '/images/' . $filename; $file_url = get_site_url() . '/images/' . $filename; if (file_exists($image_path)) { echo "The file exists. URL:" . $file_url; } else { echo "The file does not exist"; } 

Я собираюсь лишнюю милю здесь :). Потому что этот код не понадобится много обслуживание и довольно солидное, я бы написал его с помощью стенографии, если заявление:

$image_path = ABSPATH . '/images/' . $filename; $file_url = get_site_url() . '/images/' . $filename; echo (file_exists($image_path))?'The file exists. URL:' . $file_url:'The file does not exist'; 

Стенография, если заявление объяснил:

$stringVariable = ($trueOrFalseComaprison > 0)?'String if true':'String if false'; 

как проверить, существует ли файл изображения?

вы должны использовать абсолютный путь, чтобы увидеть, если файл существует.

$abs_path = '/var/www/example.com/public_html/images/'; $file_url = 'http://www.example.com/images/' . $filename; if (file_exists($abs_path . $filename)) { echo "The file exists. URL:" . $file_url; } else { echo "The file does not exist"; } 

если вы пишете для CMS или PHP framework, то, насколько я знаю, все они определили константу для корневого пути документа.

e.G WordPress использует ABSPATH, который можно использовать глобально для работы с файлами на сервере, используя ваш код, а также url-адрес сайта.

Wordpress пример:

$image_path = ABSPATH . '/images/' . $filename; $file_url = get_site_url() . '/images/' . $filename; if (file_exists($image_path)) { echo "The file exists. URL:" . $file_url; } else { echo "The file does not exist"; } 

Я собираюсь пройти лишнюю милю здесь :). Потому что этот код не понадобится много обслуживание и довольно солидное, я бы написал его как стенографию, если бы заявление:

$image_path = ABSPATH . '/images/' . $filename; $file_url = get_site_url() . '/images/' . $filename; echo (file_exists($image_path))?'The file exists. URL:' . $file_url:'The file does not exist'; 

Стенография, если заявление объясняется:

$stringVariable = ($trueOrFalseComaprison > 0)?'String if true':'String if false';