file_exists не находит файл

12
Dreammaker
На сайте с 20.04.2006
Offline
569
#11
LEOnidUKG:
ile_exists файла через http:// мухахаха
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to List of Supported Protocols/Wrappers for a listing of which wrappers support stat() family of functionality.

Хотя непонятно как функция работает с http: ,а лень проверять :)

[Удален]
#12
wdsg:
А вот для удалённых хостов более корректно было бы использовать подобную структуру: http://ru2.php.net/manual/ru/function.file-exists.php#85246

Только если для 404 страницы возвращается соответствующий код.

[Удален]
#13
strausenok:
if (file_exists('файл')) echo 2222;
else echo 111;
strausenok:

какой бы файл http:// не написал. все время выдается "222".

если выводится "2222", то файл существует!

иначе он выводил бы "111"

wdsg
На сайте с 09.02.2009
Offline
31
#14
nikitian:
Только если для 404 страницы возвращается соответствующий код.

Разумеется, любая реализация проверки существования файла по http основана только на заголовках, отдаваемых удалённым хостом. В случае, если удалённый хост не возвращает 404, оба варианта (curl и file_exists() через http-враппер) непригодны. В идеале, необходимо делать запрос заведомо существующего и заведомо отсутствующего на сервере файла, после чего, проанализировав ответы хоста, делать целевой запрос. Однако, по понятным причинам, данное решение не всегда возможно и довольно неточно.

Проектирование и разработка сложных IT-систем. Вожусь с проблемными задачами.
T.R.O.N
На сайте с 18.05.2004
Offline
314
#15
wdsg:
В случае, если удалённый хост не возвращает 404

А если и возвращает, то что? Ведь очень часто после заголовка с ошибкой 404 идет контент страницы ошибки, ведь это тоже файл и он существует? Всем так нравится пых, что уже забыли как пользоваться протоколами. В моем понимании, нужно сделать запрос HEAD к удаленной странице и просто посмотреть результат ответа. А дальше уже самому принимать решение в зависимости от ответа 404/500/302/305/403/200

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий