PHP opendir прекрасно работает с относительным путем, а не с абсолютным? - PullRequest
0 голосов
/ 24 октября 2011

Вот проблема: В одном месте я использую относительный путь для загрузки имен всех файлов в определенной папке:

if ($handle = opendir('images/uploads/form_id_1103/1'))

Это работает нормально, но если я изменю его на:

if ($handle = opendir('/images/uploads/form_id_1103/1'))

Я получаю сообщение об ошибке: Нет такого файла или каталога в - просто отметим, что папка images находится в корне, поэтому / images должен быть действительным

Тем временем, если я покажу изображение из этой ("несуществующей") папки с

<img src="/images/uploads/form_id_1103/1/test.jpg">

работает нормально и показывает изображение.

Я не могу использовать относительный путь, так как я использую apache mod_rewrite для преобразования URL-адресов в SEO-дружественные.

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 24 октября 2011

Вы путаете веб-URL с путями файловой системы.Файловые функции PHP не работают с URL-адресами, если они не заполнены + абсолютные http://blah/blah/blah/blah).Вам нужно выяснить реальный путь для вашего изображения на сервере, если вы хотите использовать абсолютный.Это было бы что-то вроде

/home/site/example.com/docroot/images/etc...
                               ^---url starts here.
2 голосов
/ 24 октября 2011

Если вы начинаете путь с / на сервере Linux.он будет обработан так, как если бы вы открывали каталог из корня установки linux.не относится к текущему файлу PHP.точка в начале пути означает текущий каталог.

...