2015-10-03 4 views
0

У меня возникли проблемы с glob в php, и хотя я провел некоторое исследование, я просто не мог найти ответ на свою проблему.glob - установить относительный путь корневой каталог

Прежде всего к моей структуре каталогов:

/ (root) 
/images (folder) 
     - gallery/ (sub folder containing image files) 
/pages (folder) 
     - gallery.php 

Я хочу, чтобы получить доступ к подпапке «галерея» в папке «картинка». Итак: В моем файле gallery.php я получил следующую строку:

$images = glob("/images/gallery/*.*"); 

И это не работает.

Что действительно работает, если я изменить путь к «../»

$images = glob("../images/gallery/*.*"); 

или изменить код:

define('BASE', $_SERVER['DOCUMENT_ROOT']); 
$images = glob(BASE."/images/gallery/*.*"); 

Unfortunatly исходный код затем показывает некоторые info Я не уверен, что хочу на самом деле обнародовать

e.g.  
/home/scecjwkh/htdocs/images/gallery/3.JPG 

I надеюсь, что информация, которую я предоставил, достаточна, чтобы реально понять мою проблему. Не знаю, почему у меня так много проблем с относительным путем o.o

Спасибо заранее, Штубеном

+0

Когда вы указываете путь, начинающийся с косой черты ('/'), он считается абсолютным путем от вашего корневого каталога носителя/диска, а не относительно корня dir приложения. Кстати, для чего вы пытаетесь использовать 'glob'? Может быть, если вы это объясните, вы сможете улучшить свои шансы получить ответ. –

ответ

0

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

$images = glob(__DIR__."/../images/gallery/*.*"); получает список изображений, не заботясь о current working dir, после чего вы можете использовать realpath(__DIR__.'/..'), чтобы выяснить, сколько отсечь от каждого пути к файлу.