У меня возникли проблемы с glob в php, и хотя я провел небольшое исследование, я просто не мог найти ответ на свою проблему.
Прежде всего, к моей структуре каталогов:
/ (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/*.*");
К сожалению, исходный код показывает некоторую информацию, я не уверен, что хочу на самом деле обнародовать
e.g.
/home/scecjwkh/htdocs/images/gallery/3.JPG
Я надеюсь, что предоставленной мной информации достаточно, чтобы понять мою проблему. Не уверен, почему у меня так много проблем с относительным путем o.O
Заранее спасибо,
Stuben
Что вы обычно делаете, это используете __DIR__
строить относительные пути из папки текущего скрипта. Вы также можете использовать __DIR__
знать, какую часть вырезать из окончательных путей, потому что вы должны знать, где в проекте находится ваш текущий файл, и, таким образом, знать, где находится корень относительно него.
$images = glob(__DIR__."/../images/gallery/*.*");
получает список изображений, не заботясь о текущий рабочий каталог, после чего вы можете использовать realpath(__DIR__.'/..')
выяснить, сколько нужно отрывать от каждого пути к файлу.
Других решений пока нет …