Столкнулся с необходимостью определить существует файл или нет (файл может быть как локальным, так и на чужом сервере в интернете).
Сперва определяю локальный файл или по http...
С удаленными файлами делаю так:
<?php
$Headers = [user=get_headers]get_headers[/user]($img);
if(!preg_match("|200|", $Headers[0])) {
.....
?>
все отлично работает, а вот с локальными файлами возник полный затык.
Сперва попытался пользоваться функцией ПХП file_exists - она у меня очень долго не хотела вообще ничего возвращать (возвращала пустую строку, хотя по логике должна возвращать вроде как TRUE/FALSE или 0/1), в итоге от нее добился получения "1" только при подстановке аргументом полного пути (пути начинающегося с "var\www\....") к существующему файлу, что не очень удобно. Кстати как из Друпала узнать путь от корня до установки Друпала?
Далее решил поискать в Друпале аналогичную функцию и нашел http://api.drupal.ru/api/function/check_file , однако с ней результаты еще более плачевные, в документации практически ничего не написано ни про что должно быть аргументом, ни что у нее на выходе, а опытным путем, что бы я не подставлял в виде пути на выходе всегда пустая строка. Как этой функцией пользоваться?
Дальше совсем интересно, стал экспериментировать с fopen(.... ,"r") и что бы я не ставил первым аргументом никаких ошибок php не выдало... Ничего не понимаю Может у меня что то с конфигурацией php или сервера не так? может в эту сторону копать надо? Подскажите пожалуйста.
Комментарии
<?php
$source - путь относительно корня сайта. например files/myfile.png
$source = realpath($source);
file_exists($source)
?>
Огромное СПАСИБО!
еще раз огромное спасибо! все заработало!
У вас пади винда, поэтому вы пишите путь так
, хотя в случае php, html, css надо использовать слеш "/" для указания пути, например так var/www/mysite/public_htmlОшибки php исчите в логе веб-сервера