2015-11-11 7 views
-1

Я пытаюсь загрузить все изображения из папки, делая это:Glob() возвращение пустой вопрос DirectoryPath

<?php 
$dirname = "/../../../properties-frontpage/"; 
$images = glob($dirname."*.*"); 
foreach($images as $image) { 
    echo '<div class="item" style="background-image:url(' . $image . ')" ></div>'; 
} 
echo '<pre>'; 
var_dump($images); 
echo '</pre>'; 
?> 

Однако, он возвращает пустой массив, это сводит меня с ума, Im вероятно Определяя $dirname неправильный путь, но не может понять, как это сделать.

Спасибо, ребята

EDIT 01

код написан в включающийся, который помещается в папку под названием includes вот моя структура папок:

сор-содержание> темы> AWF > включает

properties-frontpage папка находится в папке wp-content.

включение включено в front-page.php в моей AWF папке темы.

Так что мне нужно выйти на три уровня справа?

EDIT 02 Благодаря решению Стефана Гериги я теперь эти URL, которые выводят: /Users/boriskamp/Documents/Local Websites/MijnAWF/wp-content/themes/AWF/includes/../../../properties-frontpage/12.jpg

как я могу превратить этот в

/Users/boriskamp/Documents/Local Websites/MijnAWF/wp-content/properties-frontpage/12.jpg поэтому они работают как src?

+0

Где вы выполняете этот скрипт и по какому пути является каталогом свойств-frontpage. – jmattheis

+0

Вы используете абсолютный путь ('/' в начале вашего пути делает его абсолютным, а '/' - root). .... и вы не можете поднять папку из root ... так эффективно вы указываете на '/ properties-frontpage /' на вашей файловой системе ..... вы имели в виду использовать относительный путь? Не зная больше о структуре ваших папок, вам лучше советовать –

+0

Спасибо за помощь, ребята, я действительно использовал и абсолютный путь, которого я не должен. однако он все еще не работает, см. мой отредактированный вопрос –

ответ

0

Используйте этот код вместо:

<?php 
$dirname = "../../../properties-frontpage/"; // Remove the first/
$images = glob($dirname."*.*"); 
foreach($images as $image) { 
    echo '<div class="item" style="background-image:url(' . $image . ')" ></div>'; 
} 
echo '<pre>'; 
var_dump($images); 
echo '</pre>'; 
?> 
+0

не работает, см. мой отредактированный ответ для структуры папки –

2

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

Таким образом, вы можете сделать что-то вроде этого

$dirname = __DIR__."/../../../properties-frontpage/"; 

Это будет решить что-то вроде

/<<absolute path>>/wp-content/themes/AWF/includes/../../../properties-frontpage/ 

Что касается EDIT 02:

Удаление обхода .. может быть выполнено с помощью realpath() (пожалуйста, прочитайте документы о том, что происходит с символическими ссылками, и в случае, если целевой путь не существует). Но сделать путь, доступный через веб-сервер, сложнее. Вы не можете просто предположить, что вам просто нужно снять полосу /Users/boriskamp/Documents/Local Websites/, сделайте путь относительно корня документа. В зависимости от конфигурации вашего сервера (например, псевдонимов или сопоставлений путей) эта задача становится произвольной и выходит за рамки исходного вопроса. Возможно, есть помощник WP, который может это сделать, - что я не знаю.

+0

отлично, мы приближаемся! Благодаря! см. мой обновленный ответ –

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