Вопрос № 155402: Уважаемые эксперты! Передо мной стоит задача: вывести в коде страницы список, пунктами которого являются изображения, хранящиеся в определенной папке, например, в папке "images/photos" (код в приложении). Скажите, пожалуйста, как я мо...
Вопрос № 155.402
Уважаемые эксперты! Передо мной стоит задача: вывести в коде страницы список, пунктами которого являются изображения, хранящиеся в определенной папке, например, в папке "images/photos" (код в приложении). Скажите, пожалуйста, как я могу сделать подобное средствами php?
Отвечает: Товарищ Бородин
Здравствуйте, Осипова Светлана! На самом деле нет ничего проще :) Предположим, Ваша папка имеет относительно скрипта расположение "images/photos", а версия PHP на Вашем компьютере/сервере - 5. Тогда задача упрощается до примитивизма. <?php // Список изображений, хранящихся в Вашей папке и имеющих расширение .jpg $imageList = glob('images/photos/*.jpg'); // Далее, собственно, вывод списка ?> <ul> <?php foreach ($imageList as $image) { ?> <li><img
src="<?php echo $image; ?>"> </li> <?php } ?> </ul>
Разберем, что же мы сделали. glob - функция, доступная, начиная с 5-ой версии PHP(почему я и заострил на этом внимание). Она находит все файлы, удовлетворяющие шаблону, передаваемому ей в качестве первого параметра и возвращает массив с именами(опять же удовлетворяющими шаблону). Потом мы разбираем массив по отдельным элементам, и кажды
й этот элемент подставляем в атрибут src. Генерируется столько пунктов списка, сколько элементов в массиве. Собственно, в такой задаче принципиальный момент - это получение массива ссылок на файлы. Если версия PHP - 4, что уже, без сомнения, довольно редкий случай, так как большинство хостеров предоставляют как PHP4, так и PHP5, а возможности PHP5 гораздо выше, чем PHP4, соответственно, нет смысла отдавать предпочтение 4-ой версии. Средствами PHP4 такую задачу следует решать с помощью связки функций open_dir
- readdir. Причем функция readdir будет возвращать имена всех файлов в каталоге, и уже задача программиста решить, является ли файл изображением или нет. Примерный код выглядит так: <ul> <?php $dir = opendir("images/photos"); while($file = readdir($dir)) { if (preg_match(".(jpe?g|gif|png)$", $file)) { ?> <li><img src="<?php echo $file; ?>" /></li> <
?php } } ?> </ul>
С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ICQ: 346988855 ---- Ответ отправлен: 22.12.2008, 20:59
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 239349 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5 Комментарий оценки: большое спасибо! полный и понятный ответ )
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.