[Помогите] urldecode для пути к изображению

Тема в разделе "OpenCart", создана пользователем Bnopen, 15 окт 2013.

  1. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.155
    Симпатии:
    514
    Всем привет!
    Пытаюсь сделать картинки товара в email счете. В итоге приходит счет, где есть код <img src=""> но вот такой там путь:
    http://site.ru/image/cache/data/category+10/item123+(2)-60x60.jpg и из-за этого изображение не грузится, потому что на самом деле путь такой на хостинге -
    http://site.ru/image/cache/data/category 10/item123 (2)-60x60.jpg
    То есть нужно вместо + поставить пробел и тогда все нормально отображается.

    Делаем в шаблоне письма преобразование с помощью urldecode:
    <img src="<?php echo urldecode($product['thumb']); ?>"

    И все равно на почту приходит письмо, где изображения берутся по этому пути -
    http://site.ru/image/cache/data/category+10/item123+(2)-60x60.jpg

    Почему не работает urldecode?
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Во первых, вопрос с пробелами, киррилицей и прочими символами в названиях файло, картинок, папок - старый, и не воспринимает эти символы - использование же пробелов - неграмотно, лучше либо дефисом либо нижним подчеркиванием заменить, во 2-х, если уж такая ситуация случилась, то попробывать отловить, в какой момент (наверное регексп на фильтро-замену стоит) заменяет пробел на плюс и либо закомментировать либо поправить, к сожалению "боевого коня" для теста не имею что б практически проверить теорию...
     
    Bnopen нравится это.
  3. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.155
    Симпатии:
    514
    Baco, то есть если стоит регексп - то даже в самом шаблоне urldecode($product['thumb']) - никак не поможет?

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

    И где же искать этот регексп - в контроллере?
     
  4. Bogdan

    Bogdan

    Регистрация:
    25 фев 2013
    Сообщения:
    228
    Симпатии:
    104
    Попробуй
    Код:
    <img src="<?php echo str_replace('+',' ',$product['thumb']); ?>"
    Примитивно, но должно быть эффективно
     
  5. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.155
    Симпатии:
    514
    Bogdan, да, пробовал и str_replace такое и reg_exp - ничего не помогает, все равно в письме ссылка на картинку кодируется с "+".
    В общем решил пока все переделать и избавится от пробелов вообще.