Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Сергей Луконин
Статус: Студент
Рейтинг: 92
∙ повысить рейтинг >>
Товарищ Бородин
Статус: Профессионал
Рейтинг: 70
∙ повысить рейтинг >>
Абельхарисов Руслан/Marked One
Статус: Практикант
Рейтинг: 50
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 1066
от 28.12.2008, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 434, Экспертов: 36
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 155402: Уважаемые эксперты! Передо мной стоит задача: вывести в коде страницы список, пунктами которого являются изображения, хранящиеся в определенной папке, например, в папке "images/photos" (код в приложении). Скажите, пожалуйста, как я мо...


Вопрос № 155.402
Уважаемые эксперты!
Передо мной стоит задача: вывести в коде страницы список, пунктами которого являются изображения, хранящиеся в определенной папке, например, в папке "images/photos" (код в приложении).
Скажите, пожалуйста, как я могу сделать подобное средствами php?

Приложение:

Отправлен: 22.12.2008, 20:37
Вопрос задала: Осипова Светлана (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Товарищ Бородин
Здравствуйте, Осипова Светлана!
На самом деле нет ничего проще :)
Предположим, Ваша папка имеет относительно скрипта расположение "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 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    большое спасибо!
    полный и понятный ответ )


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное