Php вывести массив картинок

Вывод изображений средствами PHP

Возникла надобность вывести изображения в нечто похожее на галерею исходя из чего нашел и подстроил следующий код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
$archive = archive/username/; // проще говоря, переменная берется из бд и она рабочая, проверял через Echo $widthdef=750; //ширина блока изображений $heightdef=120; //максимальная высота одной строки $margin=2; //отступы между картинками $uploadsdir= $archive.'photo_al/'; //папка, в которой лежат изображения //$img[от 1 до N] - массив картинок //$imagescount=N соответственно, количество картинок echo '
'; $first=1; while($first$imagescount){ $images=$first-1; $hightes=$heightdef+1; while($hightes > $heightdef && $images$imagescount) { $images++; $width=$widthdef-($images-$first+1)*($margin*2); //ширина,с учетом отсупов list($w[$images], $h[$images]) = getimagesize($uploadsdir.$img[$images]); //запрашиваем ширину и высоту изображения по мере необходимости $delim=$width*$h[$first]; $delit=$w[$first]; for($j=($first+1);$j$images;$j++) { $delit=$delit+$w[$j]*($h[$first]/$h[$j]); } $hightes=floor($delim/$delit);//высота строки if($hightes$heightdef) { for($iy=$first;$iy$images;$iy++) { $ht=$hightes.'px'; echo ''; //выводим картинку } $first=$images+1; } else { if($images==$imagescount) { //вывод картинок, если блок не получается полностью заполненным for($y=$first;$y$images;$y++) { echo ''; } $first=$images+1; //указываем, с какой картинки считать } } } } echo '
'
;?>

Но в итоге не происходит ничего и я не могу понять в чём проблема?
Через echo выводит спокойно путь к нужной директории.
Где-то ошибка в формуле?

Источник

Вывод всех картинок из папки на PHP

Вывод всех картинок из папки на PHP

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

Привожу сразу весь PHP-код:

$dir = ‘images/’; // Папка с изображениями
$cols = 3; // Количество столбцов в будущей таблице с картинками
$files = scandir($dir); // Берём всё содержимое директории
echo «

«; // Начинаем таблицу
$k = 0; // Вспомогательный счётчик для перехода на новые строки
for ($i = 0; $i < count($files); $i++) < // Перебираем все файлы
if (($files[$i] != «.») && ($files[$i] != «..»)) < // Текущий каталог и родительский пропускаем
if ($k % $cols == 0) echo « «; // Добавляем новую строку
echo «

«; // Закрываем столбец
/* Закрываем строку, если необходимое количество было выведено, либо данная итерация последняя */
if ((($k + 1) % $cols == 0) || (($i + 1) == count($files))) echo «

«;
$k++; // Увеличиваем вспомогательный счётчик
>
>
echo «

«; // Начинаем столбец
$path = $dir.$files[$i]; // Получаем путь к картинке
echo «»; // Делаем ссылку на картинку
echo «Php вывести массив картинок«; // Вывод превью картинки
echo «»; // Закрываем ссылку
echo «

«; // Закрываем таблицу
?>

Разумеется, здесь идёт смесь представления и реализации, что, конечно, нехорошо, но данный скрипт Вы должны будете подстроить под свой движок. Возможно, у Вас и таблиц не будет. В остальном, думаю, проблем с понимаем, как вывести на сайт изображения из папки на PHP, возникнуть не должно.

Теперь для того, чтобы добавить очередное изображение на сайт, достаточно просто скопировать необходимую картинку в папку «images«. Вот таким простым способом реализуется задача, которая, на первый взгляд, неразрешима без вмешательства в исходный код, базу данных, либо создания Admin-панели.

Создано 19.10.2012 08:43:41

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Источник

    Отображаем все картинки из директории при помощи PHP

    Случилось так, что подготавливая материалы для одного из будущих постов о забавной старой MS-DOS игре, мне понадобилось сделать скриншот около 500 маленьких иконок-спрайтов, собранных все вместе рядом и в заданном количестве колонок. Искать и устанавливать специальный софт чтобы генерировать коллажи картинок было не охота, задача очень проста и решилась в два десятка строк на PHP. Выводим все найденные картинки из директории в виде таблички и задаем фон — все просто, как в 1м классе.

    Подготовка

    Итак, список действий для данной задачки:

    • открыть директорию;
    • отсеять все файлы что не являются картинками по расширению png, jpg, gif;
    • вывести каждый рисунок в табличке с заданным количеством колонок и цветом фона.

    Для тестирования и разработки на PHP подобных скриптов всегда удобно держать под рукой сборку с локальным веб-сервером Apache+PHP. В принципе подойдет любой локальный веб-сервер, я же использую OpenServer — он бесплатен, прост в установке и настройке.

    Вот самое простое решение на PHP, написанное за несколько минут:

    // show images in grid $columns = 15; $background = '#DBEAF9'; $images_dir = 'images/'; $count = 1; echo ''; if(is_dir($images_dir)) < if ($h = opendir($images_dir)) < while (($file = readdir($h)) !== false) < if(preg_match("#\.(jpg|gif|png)$#i", $file)) < echo ''; $count++; if( ($count%$columns)==0 ) echo ''; > > closedir($h); > > echo '
    ';

    Все картинки из директории, что размещена там же где и файл-скрипт, будут выведены в виде таблици с количеством колонок равным 15. Цвет фона таблици — #DBEAF9 .

    Результат

    Вот что получается в результате генерации HTML кода скриптом:

    Выводим картинки из директории при помощи PHP

    Заключение

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

    Вообще любой язык программирования при умелом обращении, в целях автоматизации, может сэкономить массу времени при решении разных рутинных задач. Представьте только себе, к примеру, если бы эти 500 картинок взять и вручную по сращивать в Фотошопе — даже представить страшно сколько на это уйдет времени.

    Источник

    Как вывести массив изображений?

    Я пытаюсь перечислить (также изменить размер) фотографии в следующем коде. Поэтому я хочу вывести все изображения с идентификатором «х».

    Проблема в том, что у меня есть заголовок, который я включил в документ, поэтому я не могу использовать header(‘Content-type: image/jpeg’); вывести массив изображений, которые я хочу показать. Но если я достану его, он просто показывает группу случайных символов, которые, как я знаю, представляют собой фотографию в виде строки. Я не уверен, как заставить это работать. Я планирую иметь каждую фотографию в отдельном разделе.

         prepare($query); if ($getphotos->execute())< while ($array = $getphotos->fetch(PDO::FETCH_ASSOC)) < $image = imagecreatefromjpeg('userphotos/'.$array['photoname'].''); list($image_width, $image_height, $type, $attr) = getimagesize('userphotos/'.$array['photoname'].''); $new_size = ($image_width + $image_height)/($image_width*($image_height/100)); $new_width = $image_width * $new_size; $new_height = $image_height * $new_size; $new_image = imagecreatetruecolor($new_width, $new_height); imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height); $imagearray = imagejpeg($new_image, null); header('Content-type: image/jpeg'); echo $imagearray; >> else < die('Query Error'); >?>  

    Я могу сделать что-то подобное

    while ($array = $getphotos->fetch(PDO::FETCH_ASSOC))< echo ''; > 

    Но тогда это означает, что я буду выполнять запрос дважды, что, вероятно, не очень хорошая идея? Это единственный способ?

    2 ответа

    Протокол HTTP обрабатывает один ответ на один вопрос. Работа HTML заключается в том, что он описывает структуру и содержимое в одном HTML-документе и позволяет загружать вторичные ресурсы по ссылке. Правильный способ сделать это — создать img теги в вашем HTML к изображениям, которые должны быть показаны, также позволяющие вам стилизовать их и т. д. В ссылочных URL-адресах вы можете затем передать параметр для конкретного изображения.

    while($row = $myQuery->nextRow()) echo 'getName()).'">'; 

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

    Источник

    Читайте также:  Python return code process
    Оцените статью