2013-01-23 2 views
-2

Это должно быть просто, но это не работаетPHP file_exists

$photo = "../members/".$vid.".jpg"; 

    if (file_exists ($photo)) 
     echo "<img id='memberpic' src = '$photo'/>"; 

В этом случае изображение никогда показано на рисунке.

Однако, если оставить вне если заявления ...

echo "<img id='memberpic' src = '$photo'/>"; 

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

Что мне не хватает?

ответ

3

Вы используете относительный путь для file_exists(). Вместо этого попробуйте использовать полный путь к серверу.

например.

$photo = "/var/www/html/members/".$vid.".jpg";

но, очевидно, заменить полный путь вашего сервера :)

+0

Используйте что-то вроде '__DIR__' или' $ _SERVER ['DOCUMENT_ROOT'] ', чтобы превратить относительный путь в абсолютный. – SDC

+0

... или вы можете получить текущий рабочий каталог 'getcwd()' – ConcurrentHashMap

+0

Спасибо всем, но, похоже, здесь есть что-то другое. Я переключился на абсолютные пути, и теперь File_exists находит файл, но тег img - нет. Следующее решение работает, но кажется запутанным: $ photo = "$ root/members /".$ vid.". Jpg "; $ photo1 = "../members/".$vid.".jpg"; if (file_exists ($ photo)) echo ""; Итак, я могу поверить, что HTML хочет относительный путь, но PHP предпочитает абсолютный путь. Это может быть правильно? – delpi767

-1

Используйте абсолютные пути так часто, как вы можете. Относительные пути - это боль для PHP для их вычисления (по производительности).

И если вы не хотите использовать Абсолютный путь, вы можете использовать относительный путь со следующим.

$_SERVER['DOCUMENT_ROOT'] = '<root_dir_of_your_project>'; 
file_exists($_SERVER['DOCUMENT_ROOT'].'/path/to/file.php'); 
0

Есть некоторые вещи, которые вам нужно иметь в виду при работе с файлами и путями каталогов. В основном лучше получить доступ к файлам абсолютным (полный путь на веб-сервере), чем относительный (путь из каталога, из которого выполняется php-скрипт). Это поможет вам проверить, существует ли файл. Вы можете получить активную директорию своего скрипта с постоянной магией PHP DIR (версия PHP> = 5.3) или имя_файла (FILE).

Еще одна вещь, которую вы должны отслеживать, - это то, что ваш веб-сервер является корневым документом. Ваш (в вашем случае) графические файлы рассматриваются как: документ-корень: /var/www/example.com/img/photo.png URL: http://example.com/img/photo.png

Хотя можно использовать «родительский каталог» с .. я бы не рекомендовал использовать, потому что это сложно.

Смежные вопросы