Php изображения в массиве

Показ случайной картинки на сайте при помощи РНР

Рассмотрим вывод на странице сайта произвольной картинки из директории. Для этого нам нужно зайти в директорию где находятся изображения, затем просмотреть количество изображений и с общего количества показать n-ю картинку. Реализовывать мы это будем как вы уже догадались с помощью РНР.

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

$dir = "путь к папке с изображениями"; // Указываем директорию в которой находятся наши изображения. Например: http://mypage.ua/img/ $img_a = array(); // Создаем пустой массив для хранения названий изображений 

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

if (is_dir($dir)) < // Проверяем действительно ли переменная содержит путь к папке if($od = opendir($dir))< // Открываем папку while(($file = readdir($od)) !== false)< // Проверяем все файлы что находятся в папке if(strtolower(strstr($file, "."))===".jpg" || strtolower(strstr($file, "."))===".gif" || strtolower(strstr($file, "."))===".png")< // Выделяем с всех файлов только изображения. Как правило это файлы с расширением: .jpg, .gif, .png array_push($img_a, $file); // Если файл действительно имеет расширение изображения добавляем его в массив >> closedir($od); // Закрываем папку > > 

Теперь наша вторая переменная содержит в себе массив с именами изображений. Нам осталось только вывести одно из них на страницу нашего сайта. Для этого создадим переменную которая будет генерировать случайное число от 1 до количества записей в массиве n.

$rd = rand(0, count($img_a)-1); // Получаем случайное число от 1 до количества записей в массиве 

в котором и зададим высоту (height) и ширину (weidth) нашего изображения.

print ' '// Выводим изображение с директории и задаем высоту и ширину изображения 

В результате мы получаем следующий РНР код:

 > closedir($od); > > $rd = rand(0, count($img_a)-1); print ' ' ?> 

И так код показа картинки мы написали что дальше? Нужно его применить и тут собственно два пути.
Первый просто вставить вышеуказанный код в HTML документ в то место где вы хотите отобразить картинку.
Второй создать текстовый документ с вышеуказанным кодом и сохранить его с расширением .php например (random_img.php). После того как документ создан копируем его в корневой каталог вашего сайта и в HTML документ в то место где вы хотите отобразить картинку пишете следующую строку:

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

Источник

Создание и вывод массива PHP, картинки в массиве для слайдера?

Всем привет!Не могу разобраться как вывести в каталоге товаров изображения для слайдера предпросмотра товара.
Уже второй день маюсь с этим, не нахожу решение для создания и вывода дополнительного массива из функции products которая представлена ниже.
Возможно ли в функции products прописать создание массива для вывода img_slide или для этого лучше создать отдельную функцию?

База данных:
В таблице goods есть столбец с img_slide содержащий названия изображений [69_0.jpg|69_1.jpg|69_2.jpg|69_3.jpg|69_4.jpg]

Создаю функцию и получаю массив товаров:

function products($category, $order_db, $start_pos, $perpage) < $query = "(SELECT goods_id, name, img, img_slide, keywords, description, anons, price, hits, goods_brands_name FROM goods WHERE goods_brandid = $category AND visible='1') UNION (SELECT goods_id, name, img, img_slide, keywords, description, anons, price, hits, goods_brands_name FROM goods WHERE goods_brandid IN ( SELECT brand_id FROM brands WHERE parent_id = $category ) AND visible='1') ORDER BY $order_db LIMIT $start_pos, $perpage"; $res = mysql_query($query) or die(mysql_error()); $products = array(); while($row = mysql_fetch_assoc($res))< $products[] = $row; >return $products; >
case('cat'): // товары категории $category = abs((int)$_GET['category']); /* =====Сортировка===== */ // массив параметров сортировки // ключи - то, что передаем GET-параметром // значения - то, что показываем пользователю и часть SQL-запроса, который передаем в модель $order_p = array( 'pricea' => array('от дешевых к дорогим', 'price ASC'), 'priced' => array('от дорогих к дешевым', 'price DESC'), 'datea' => array('по дате добавления - к последним', 'date ASC'), 'dated' => array('по дате добавления - с последних', 'date DESC'), 'salea' => array('сначало акции', 'sale DESC'), 'hitsed' => array('сначало скидки', 'hits DESC'), 'namea' => array('от А до Я', 'name ASC'), 'named' => array('от Я до А', 'name DESC') ); $order_get = clear($_GET['order']); // получаем возможный параметр сортировки if(array_key_exists($order_get, $order_p))< $order = $order_p[$order_get][0]; $order_db = $order_p[$order_get][1]; >else < // по умолчанию сортировка по первому элементу массива order_p $order = $order_p['namea'][0]; $order_db = $order_p['namea'][1]; >/* =====Сортировка===== */ // параметры для навигации $perpage = PERPAGE; // кол-во товаров на страницу if(isset($_GET['page']))< $page = (int)$_GET['page']; if($page < 1) $page = 1; >else < $page = 1; >$count_rows = count_rows($category); // общее кол-во товаров $pages_count = ceil($count_rows / $perpage); // кол-во страниц if(!$pages_count) $pages_count = 1; // минимум 1 страница if($page > $pages_count) $page = $pages_count; // если запрошенная страница больше максимума $start_pos = ($page - 1) * $perpage; // начальная позиция для запроса $brand_name = brand_name($category); // хлебные крохи $products = products($category, $order_db, $start_pos, $perpage); // получаем массив из модели $meta['title'] = $brand_name[0]['brand_name']; if($brand_name[1]) $meta['title'] .= " - "; $meta['title'] .= "" ; $meta['description'] = " "; break;

// для примера как я это представляю

Читайте также:  Java io filenotfoundexception randomaccessfile

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

UPD
Решил проблему создав еще одну функцию.

Простой 2 комментария

Источник

Вывод картинок из массива

Здравствуйте! Подскажите пожалуйста, как мне разобрать массив картинок, что бы на выходе получилась таблица с двумя картинками в каждой строке ?

Вывод картинок
Добрый вечер всем. Прошу помощи. Есть галерея. Не могу понять как сделать так чтоб при заходе на.

Вывод картинок
Здравствуйте, вывод идет: <a href="/catalog/catalog_img/" target=_blank onclick="return.

Вывод картинок
Здравствуйте! Вывожу на сайт картинки из бд и несколько строк в список. Возле каждого элемента.

Вывод картинок в php
Всем доброе время суток, у меня есть код вывода картинки и стать, есть шаблон для вывода статьи на.

Эксперт PHP

Лучший ответ

Сообщение было отмечено maximillian77 как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
 # Массив имён картинок $images = [ 'image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg', 'image5.jpg' ]; ?> table> tr>  foreach($images as $key=>$image): ?> td> img src="/path/to/images/$image?>" alt="Php изображения в массиве"/> td>  if(++$key % 2==0): ?> tr>tr>  endif; ?>  endforeach; ?> tr> table>

lyod , спасибо Вам ! Я вот сделал так, но не работает как хотелось бы .. получаю вот такой вариант!

Не подскажите пожалуйста в чём может быть ошибка ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14
  for($j = 0; $j  count($imgarray); $j++) { echo '';if($j%2==0){echo'';}}?>
'; echo ' '; echo '

Эксперт PHP

Лучший ответ

Сообщение было отмечено maximillian77 как решение

Решение

Это затрата ресурсов и времени.
А во-вторых, почему бы не сделать, как я показал? Зачем тут FOR?
Попробуйте так:

1 2 3 4 5 6 7 8 9 10 11 12
  foreach($imgarray as $key=>$img):?>  if(++$key % 2 == 0):?>  endif;?>  endforeach;?> 
Php изображения в массиве

Источник

Php изображения в массиве

www.meweb.ru

Гостей: 7

Гости:
www.meweb.ru[Ваш IP] 13:42:45
/Статьи
www.meweb.ru88.99.240.224 13:42:44
Поиск по тегам
www.meweb.ru23.22.35.162 13:42:36
Поиск по тегам
www.meweb.ru77.75.79.101 13:41:50
/Поиск
www.meweb.ru3.224.220.101 13:39:16
Поиск по тегам
www.meweb.ru52.70.240.171 13:39:08
Поиск по тегам
www.meweb.ru185.191.171.7 13:38:32
Поиск по тегам

Всего пользователей: 55
Новый пользователь: antalyaliali

www.meweb.ruJS- утилиты, фреймворки → Syntax Highlighter [1270]
www.meweb.ruPHP скрипты → Скрипт для проверки . [1054]
www.meweb.ruJS- утилиты, фреймворки → JQuery TimeAgo [970]
www.meweb.ruJS- утилиты, фреймворки → JQuery Form [924]
www.meweb.ruJS- утилиты, фреймворки → JQuery Validation Pl. [4037]

www.meweb.ruБезопасность → DKIM-подпись для почтового домена в I. [18363]
www.meweb.ruСобственное мнение → Page Rank и тИЦ ушли в небытие. [4538]
www.meweb.ruСобственное мнение → isset и empty — функции? Нет! [8098]
www.meweb.ruПрограммирование → PHP-Fusion: переход с mysql на mysqli. [8846]
www.meweb.ruПрограммирование → Перевод CMS PHP-Fusion с mysql_* на m. [6609]

www.meweb.ruPHP → Функция хэширования пароля
www.meweb.ruHTML → HTML5: валидация email в поле ввода
www.meweb.ruJavaScript, JQuery → Поиск выделенных чекбоксов на ст.
www.meweb.ruPHP → Функция преобразования hex в rgb
www.meweb.ru.htaccess → Переименование названия сессии

Да, смайлы зачетные )) Уже не помню, где брал их. Это далеко не все, лень добавлять просто, их там штук 70

Купить продукцию Амвей в Ярославле, офис Amway

→ На картеКупить AMWAY: офис в Ярославле Консультации, презентации, мастер–классы, знакомство с продукцией, заказ и выдача купленного товара:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон:+7 (920) 112-00-91
Email:matyxho@mail.ru
Сайт:https://www.amway.ru/user/lebedem
Визитка:http://yar.meweb.ru

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

Опубликовал PisatelPisatel Добавлено 06-04-2015 15:3606 Апрель 2015 15:36:11 28441 Прочтений28441 Прочтений

Обновлено: 06-04-2015 16:00Обновлено: 06 апреля 2015 16:00:17 printer

В данной статье приведу небольшой скрипт, который ищет изображения в указанной папке (директории) и выводит их. Для начала — вывод всех изображений из папки (как всегда- комментарии прямо в коде):



$wimage = "";

$fimg = "";

$path = "images/"; // задаем путь до сканируемой папки с изображениями

$images = scandir($path); // сканируем папку

if ($images !== false) < // если нет ошибок при сканировании

$images = preg_grep("/\.(?:png|gif|jpe?g)$/i", $images); // через регулярку создаем массив только изображений

if (is_array($images)) < // если изображения найдены

foreach($images as $image) < // делаем проход по массиву

$fimg .= "".$image."";

>

$wimage .= $fimg;

> else < // иначе, если нет изображений

$wimage .= "
Не обнаружено изображений в директории!
\n";

>

> else < // иначе, если директория пуста или произошла ошибка

$wimage .= "
Директория пуста или произошла ошибка при сканировании.
";

>

echo $wimage; // выводим полученный результат


Однако, задачи бывают разные. Попробую привести несколько примеров. Например, нам необходимо вывести не все изображения, а только первые 10. Для этого нужно будет лишь задать дополнительное условие при проходе по массиву. Итак, код с комментариями:

$stop = 9; // на 1 меньше, так как ключи в массиве начинаются с 0, то есть

// 0, 1, 2. значит первые 10 значений закончатся на ключе 9

foreach($images as $key => $image) < // делаем проход по массиву, выбирая ключ =>значение

$fimg .= "".$image."";

if ($stop == $key) break; // останавливаем проход по массиву, когда 9==9

>


Следующий пример — выберем, например, каждое второе изображение:

foreach($images as $key => $image) < // делаем проход по массиву, выбирая ключ =>значение

if ($key % 2 == 0) < // если целочисленный остаток от деления ключа на 2 равен 0

$fimg .= "".$image."";

> else < // иначе

continue; // пропускаем изображение

>

>


Ну и на закуску — выберем 5 случайных (рандомных) изображений из папки (каталога). Для этого я воспользуюсь php–функцией array_rand(); , и код придется чуть усложнить, увеличив буквально на пару строк:

$arand = array_rand($images, 5); // получили массив 5 случайных ключей (ключ массива => ключ изображения)

$i = 0;

foreach($images as $key => $image) < // проход по массиву

if ($arand[$i] == $key)
// если значение случайного ключа равно текущему ключу- выводим изображение

$fimg .= "".$image."";

> else < // иначе

continue; // пропускаем

>

$i++;

>


Если кто–то сможет сделать это более изящно — милости прошу. Я лично всегда стараюсь использовать для работы с массивами функции, которые специально предназначены для работы с ними и не изобретать велосипедов.

На этом, в общем, и закончу. Удачи в кодинге и процветания твоему проекту!

Источник

Массив изображений

Добавлено через 4 часа 16 минут
некто не знает чтолы, проста сам в первые с такой проблемой столкнулся, тут в одной ячейки их может быт 100 или 200?

Добавлено через 33 минуты

foreach($imageglav[items] as $item) if($item) { echo''</span data-lazy-src=
Warning: Invalid argument supplied for foreach() in Z:\home\test1.ru\www\admin\admin_functions.php on line 480

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

Массив изображений
как создать массив в котором возможно хранить некоторое количество изображений. если это.

Массив из изображений
Есть у меня две формы. На первой форме несколько кнопок. На второй форме элемент pictureBox (хочу.

Массив изображений
Доброго времени суток! записал массив изображений: inf.foto:=TImage.Create(Image5); при его.

ЦитатаСообщение от Sear Посмотреть сообщение

Аргумент, передаваемый в foreach, должен быть массивом. Воспользуйтесь функцией explode() для получения нужного массива.

считываете данные из базы, после прогоняете значение этого поля через ексрлоде и получаете массив и дальше идете по этому массиву foreach

$images = explode(' ', $data_from_mysql); foreach ($images as $image) { echo''</span data-lazy-src=

спасибо все ту проблему решил теперь мне надо все изображения выдать на экран у каждой записи возникла вторая проблема

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
 $result = mysql_query ("SELECT * FROM bashennyekrany WHERE main='bashen'",$db); $myrow = mysql_fetch_array ($result); $photos = explode(" ",chop($myrow["photos"])); do { printf ("
\"details_block\"> %s/'>

%s

\"zoom_img(this.childNodes[0]);\">%s' target='blank' onclick=\"show_image('%s',true); return false;\">
\"gallery_line2\">
\"gal2_left\" onclick=\"offset_previews(this,50);\" onmouseover=\"this.style.cursor='pointer';\" onmouseout=\"this.style.cursor='default';\" style=\"cursor: default;\">\"to_left2.png\">
\"gal2_content\">\"gal2_layout\"> echo' foreach($photos as $item) echo'\"../'.$item.'\" alt=\"'.$item.'\"\"/>';>';
\"gal2_right\" onclick=\"offset_previews(this,-25);\" onmouseover=\"this.style.cursor='pointer';\" onmouseout=\"this.style.cursor='default';\">\"to_right2.png\">
%s ",$myrow["id"],$myrow["name"],$myrow["img"],$myrow["img"],$myrow["img"],$myrow["text"]); } while ($myrow = mysql_fetch_array ($result)); ?>

Источник

Оцените статью