За последние 24 часа нас посетили 15569 программистов и 1620 роботов. Сейчас ищут 926 программистов ...

Вывод нескольких изображений из одного поля.

Тема в разделе "PHP и базы данных", создана пользователем Rom., 13 янв 2016.

  1. Rom.

    Rom. Новичок

    С нами с:
    13 янв 2016
    Сообщения:
    10
    Симпатии:
    0
    Здравствуйте! Возник такой вопрос. Имеется поле images куда добавляются имена изображений через запятую, например: img1.jpg, img2.jpg, img3.jpg
    Можно ли вывести массив из изображений ? Чтобы каждое имя отдельно вставлялось в <img src="" />
     
  2. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Код (PHP):
    1. $images = 'img1.jpg,img2.jpg,img3.jpg';
    2. $images_array = explode(",", $images);
    3. foreach($images_array as $image){
    4.     print '<img src="'.$image.'">';
    5. }
    6.  
     
  3. Rom.

    Rom. Новичок

    С нами с:
    13 янв 2016
    Сообщения:
    10
    Симпатии:
    0
    Благодарю! Все работает))
    только в foreach($images_array as $image)
    где $image , нужно $images
    и тогда всё ок)
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    можешь ее там как угодно обозвать, это не имеет никакого значения )
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    но лучше всё-таки одно имя использовать только в одном смысле, чтобы не запутаться. а images уже было.
     
  6. Rom.

    Rom. Новичок

    С нами с:
    13 янв 2016
    Сообщения:
    10
    Симпатии:
    0
    извиняюсь, оказывается и так работает)) спасибо!
     
  7. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Код (PHP):
    1. foreach(explode(",", 'img1.jpg,img2.jpg,img3.jpg') as $image){
    2.     print '<img src="'.$image.'">';
    3. }
    4.  
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    меньше конкатенаций сделай
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    я делаю всегда так:
    Код (PHP):
    1. print "<img src=$image>"; 
    смотрим в инспектор:
    Код (PHP):
    1. <img src="dd"> 
    Спрашивается, зачем тога так трахаться с ковычками, если браузер сам их в итоге расставит.
    Я понимаю, если открыл, то надо закрыт обязательно иначе синтаксическая ошибка, а тут, все норм прокатывает.

    Просветите.
     
  10. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    mahmuzar, ну правильно. ты в инспекторе смотришь. в исходном коде ничего не поменялось. ты даешь инвалидный документ, браузер его восстанавливает до валидного и потом уже запускает рендер. ты тратишь процессорное время каждого своего посетителя вместо того чтоб потратить пару мышечных сокращений на расстановку кавычек. проблема хтмл в том что он будучи частным случаем хмл имеет огромное кол-во поблажек и как следствие - ленивых разработчиков, которые полагаются на то что браузер сотворит чудо и восстановит документ. в основной массе это работает как ожидается. да и производительность клиентский станций позволяет нагружать их лишней работой. напомню, что ширина каналов и сжатие трафика - не делают проблемы из документа, в котором кавычки расставлены. ты еще просто не дорос до того момента когда решил расставлять кавычки :D
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    https://www.w3.org/TR/html-markup/syntax.html#syntax-attributes
    Дальше есть объяснение "nquoted attribute values, single-quoted attribute values, or double-quoted attribute values".

    Ну если всё правильно экранировать и заключать в кавычки, не будет проблем с угадайкой от движка браузера:

    Код
    Код (PHP):
    1. <div class=test1 test2>string</div>test
    Результат угадайки
    Код (PHP):
    1. <div class="test1" test2="">string</div>test
    Что я хотел
    Код (PHP):
    1. <div class="test1 test2">string</div>test
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Ganzal, принцип работы понять, речь о том и была, что он делает эту работу, пусть с затратами процессорного времени, как без этого, я про возможные подводные камни.

    denis01, при верстке я ковычки всегда расставляю.
    Но все таки, твой пример показал, что надо конкатенировать с ковычками.
    Код (PHP):
    1. $image = 'test1 test2';
    2. print "<div class=$image test2>string</div>test>";
    3. //в инспекторе
    4. //<div class="test1" test2="">string</div>
    5.  
    Впредь, буду всегда делать конкатенацию с ковычками.
    Я обычно пробел не использую и не задумывался о таком результате.

    Добавлено спустя 9 минут 18 секунд:
    Впредь буду использовать кавычки! Одназначно!. Вот видишь, дорос еще на один уровень)
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    У меня сразу наследования классов вспомнилось, сложновато без него.