Как проверить существование файла на 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 файлов всего за пару секунд.

html — Как проверить существует ли файл через PHP?

Вопрос задан

Изменён 1 год 9 месяцев назад

Просмотрен 401 раз

Вот моя проверка на логотип, если путь пуст, то логотипа не будет. Как сделать чтобы не было логотипа если путь указан неверно?

<?php if (!empty($config['logo'])): ?>                              
  <img src="<?= $config['logo']?>" alt="logo">                             
<?php endif; ?>

Нужно проверить есть ли файл $config['logo'] . Именно файла, проверка на пустое значение в $config['logo'] уже есть

  • php
  • html
  • файлы
2

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

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

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

is_readable() — Определяет существование файла и доступен ли он для чтения

is_writable() — Определяет, доступен ли файл для записи

is_file() — Определяет, является ли файл обычным файлом

file() — Читает содержимое файла и помещает его в массив

<?php if (!empty($config['logo']) && is_readable($config['logo'])): ?>
    <img src="<?= $config['logo'] ?>" alt="logo">
<?php endif; ?>
1

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Как реализовать функцию file_exists в PHP

Опубликовано 18 сентября 2019 г. 673 Просмотров


Стать сертифицированным специалистом работать с файлами. Функция file_exists() в PHP — это встроенная функция, которая используется для проверки существования файла или каталога. В этой статье мы увидим, как реализовать file_exists в PHP в следующей последовательности:

  • file_exists() в PHP
  • clearstatcache()

 

file_exists() в PHP

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

 

Синтаксис:

 file_exists(путь) 

 

Принимает только один параметр. путь, который указывает каталог или путь к файлу, который мы хотим проверить. Он вернет true при успешном выполнении и вернет false при неудачном выполнении.

Если путь указывает на несуществующие файлы, file_exists() возвращает false. Некоторые функции файловой системы могут давать неожиданные результаты для файлов размером более 2 ГБ, поскольку целочисленный тип PHP подписан, а многие платформы используют 32-битные целые числа.

 

clearstatcache()

Обычно результат file_exists() кэшируется. Чтобы очистить кеш, мы используем clearstatcache(), вам нужно избегать кеширования, чтобы получить правильные результаты, если файл должен быть проверен несколько раз в скрипте. Для этого мы используем функцию clearstatcache().

Синтаксис:

 clearstatcache(clear_realpath_cache, имя файла) 

 

Оба параметра являются необязательными, где Clear_realpath_cache указывает, следует ли очищать кеш реального пути или нет. По умолчанию это FALSE, что указывает на то, что не очищать кеш реального пути, а имя файла указывает имя файла и очищает реальный путь и кеш только для этого файла.

 

Пример ниже демонстрирует работу file_exists в PHP:

 

 

Вывод:

Поскольку файл не существует, это означает, что указанный путь указывает на несуществующий файл, поэтому он возвращает false и выполняет остальную часть.

На этом мы подошли к концу этой статьи. Надеюсь, вы узнали о встроенных в PHP функциях file_exists() и clearstatcache().

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

Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев « file_exists in PHP », и я свяжусь с вами.

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

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

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

Для этого можно использовать функцию exists() из модуля os.path или метод is_file() из класса Path в модуле pathlib .

Функция os.path.exists()

 из импорта os.path существует
file_exists = существует(путь_к_файлу)  Язык кода: JavaScript (javascript)  

Метод Path.is_file()

 из пути импорта pathlib
путь = путь (путь_к_файлу)
path.is_file()  Язык кода: JavaScript (javascript)  

1) Использование функции os.

path.exists() для проверки существования файла

Чтобы проверить, существует ли файл, вы передаете путь к файлу в exists() из стандартной библиотеки os.path .

Сначала импортируйте стандартную библиотеку os.path :

 import os.path Язык кода: JavaScript (javascript) 

Во-вторых, вызовите функцию exists() :

 os.path.exists(path_to_file)  Язык кода: CSS (css)  

Если файл существует, то существует () Функция возвращает True . В противном случае возвращается False .

Если файл находится в той же папке, что и программа, path_to_file — это просто имя файла.

Однако это не так, нужно передать полный путь к файлу. Например:

 /path/to/filename 

Даже если вы запускаете программу в Windows, вы должны использовать косую черту ( / ) для разделения пути.

Он будет работать в Windows, macOS и Linux.

В следующем примере используется функция exists() для проверки существования файла readme.txt в той же папке, что и программа:

 import os.path
file_exists = os.path.exists('readme.txt')
print(file_exists)  Язык кода: JavaScript (javascript)  

Если файл readme.txt существует, вы увидите следующий вывод:

 True  Язык кода: PHP (php)  

В противном случае вы увидите False на экране: 9000 3

 False  Язык кода: PHP (php)  

Чтобы сделать вызов функции exists()

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

 from Импорт os.path существует как file_exists
file_exists('readme.txt')  Язык кода: JavaScript (javascript)  

2) Использование модуля pathlib для проверки существования файла

Python представил модуль pathlib , начиная с версии 3. 4.

Модуль pathlib позволяет вам манипулировать файлами и папками, используя объектно-ориентированный подход. Если вы не знакомы с объектно-ориентированным программированием, ознакомьтесь с разделом Python OOP.

Сначала импортируйте класс Path из pathlib 9Модуль 0106:

 из pathlib import Path  Язык кода: JavaScript (javascript)  

Затем создайте экземпляр нового экземпляра класса Path и инициализируйте его путем к файлу, существование которого вы хотите проверить:

 path = Path(path_to_file) 

Наконец, проверьте, существует ли файл, используя метод is_file() :

 path.is_file()  Язык кода: CSS (css)  

Если файл не существует, is_file() 9Метод 0106 возвращает False . В противном случае возвращается True .

В следующем примере показано, как использовать класс Path из модуля pathlib для проверки существования файла readme.