PHP - Как сделать список из папок, хранящихся в определенной папке на вашем сервере? - PullRequest
2 голосов
/ 11 сентября 2011

Я создаю приложение CMS как дополнение к моему веб-сайту.

На этом сайте есть раздел рекламных акций.

Я хочу создать страницу, позволяющую легко добавлять и редактировать рекламные акции (2 изображения).

В идеале, эта страница позволила бы мне создавать и редактировать папки, которые хранятся в определенной папке на моем сервере. Затем я могу загрузить изображения в соответствующие папки. Папки, в которых находятся изображения, будут называться что-то вроде «sept-oct».

У меня уже есть пустая страница, которую можно увидеть только после того, как я вошел в систему как администратор веб-сайта. Теперь, чтобы заполнить эту страницу.

Я немного осведомлен о способности php, когда дело доходит до создания кода, создающего каталоги, или создания и редактирования файлов.

Может ли кто-нибудь предоставить мне некоторые предложения, ссылки на учебники, кусочки кода или советы, которые будут охватывать эту область php?

Мой главный вопрос: как бы я перечислил папки с промо-акциями, которые хранятся в основной папке с акциями? Что-то вроде вывода строк данных MySQL и их отображения в цикле.

С этим я могу начать добавлять новые папки или редактировать существующие.

Ответы [ 5 ]

2 голосов
/ 11 сентября 2011

Вы можете использовать glob, чтобы легко получить список всех подкаталогов:

$dir = '.';
$subdirs = glob($dir.DIRECTORY_SEPARATOR.'*', GLOB_ONLYDIR);

print_r($subdirs);

Посмотреть его в действии .

Если вы хотите получить абсолютные пути к каталогам, также включите

$subdirs = array_map('realpath', $subdirs);
1 голос
/ 11 сентября 2011

Надеемся, что это руководство поможет вам начать:

Управление файлами и каталогами в PHP (часть 1)

1 голос
/ 11 сентября 2011

PHP.net - ваш лучший ресурс для ресурсов PHP. В этом случае посмотрите на Функции каталога , и особенно на scandir.

1 голос
/ 11 сентября 2011

Одним из основных способов является использование функции glob().

$dirs = glob('path/to/promotions/folder/*', GLOB_ONLYDIR);
foreach ($dirs as $dir) {
    $name = basename($dir);
    echo $name . PHP_EOL;
}

Существует несколько других замечательных инструментов для циклического перемещения по содержимому файловой системы, включая scandir() и FilesystemIterator. Этим двум последним обычно требуется некоторая фильтрация, чтобы работать только с каталогами.

$iterator = new FilesystemIterator('path/to/promotions/folder');
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir() {
        echo $fileinfo->getFilename() . PHP_EOL;
    }
}
0 голосов
/ 11 сентября 2011

Лично я бы использовал фреймворк для ускорения вашей разработки, так как http://codeigniter.com уже имеет встроенную функциональность для загрузки / списка каталогов, и все, что вам нужно сделать, это проверить руководство пользователя, а не какой-нибудь случайный phpучебные пособия.

Используйте проект, учитесь на нем и ускоряйте дальнейшее развитие!

...