Создайте выпадающий список из дерева файлов изображений и подкаталогов, используя PHP - PullRequest
0 голосов
/ 11 октября 2010

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

Изображенияв настоящее время расположены в папке, как это:

Родительская папка| _ Вторичная папка| _ Image.png| _ Image.jpg| _ Image.gif| _ Вторичная папка| _ Image.png| _ Image.jpg| _ Image.gif

В идеале я хотел бы сохранить эту структуру в моем раскрывающемся списке, т. Е.

Secondary Folder.
| _ Image.png

Я использовал это:

function get_dir_path(){
    return dirname(__FILE__).'/library/images';
}
$largeImagesdir = get_dir_path() . '/960x345/';


    if ($dh = opendir($largeImagesdir)) {
        while (($file = readdir($dh)) !== false) {
            $lfiles .= '<option>' . $file . '</option>';
        }
        closedir($dh);
    }

    $buildbox .= '<select>' . $lfiles . '</select>';

Однако это, конечно, работает, только если я установил переменную $ largeImagesdir в качестве одного из подкаталогов ...

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 12 октября 2010

Вам нужен цикл внутри цикла.Предполагая только 2 уровня каталогов, в вашем while проверьте, является ли $file подкаталогом с is_dir(), и если да, сделайте также readdir() для этого, чтобы получить его опции.

Затем,Вы можете различать подкаталоги по optgroup в элементе <select>.

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

...