Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
346 / 321 / 203
Регистрация: 27.06.2014
Сообщений: 762
1

Img src не корректно обрабатывается символ #

12.03.2016, 13:16. Показов 1164. Ответов 7
Метки нет (Все метки)

Привет всем, собственно у меня возник вопрос есть ли какая нибудь функция которая обрабатывала бы строку с адресом картинки

<img src='img#img1#icon_64x128.jpg'>

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

<img src='img%23img1%23icon_64x128.jpg'>

тогда все выводится как надо.

_________________________

Да я в курсе что можно просто каким нибудь регулярным выражением заменить символ # на %23 но я не знаю заранее какие еще не корректные символы могут быть в имени файла.

Вот собственно и вопрос есть ли какая то функция которая работает с такими вещами?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2016, 13:16
Ответы с готовыми решениями:

Путь к img src
Добрый день всем. Ребят помогите прописать путь к картинке. Есть два файла, один выводит путь...

php +for+img src width
Нужна помощь. Так, нужно в 4-ох таблицах вести 4 картинки с измененной шириной , что получается....

Обновит картинку img src="image.php"
Может и не тот раздел, но все таки пхп присутствует ) допустим есть сгенерированая картинка php. В...

Как правильно написать тэг, чтобы IMG SRC=КАРТИНА загружал например другую картину если нет той на которую ссылался?
как правильно написать тэг, чтобы IMG SRC=КАРТИНА загружал например другую картину если нет той на...

7
Хитрая блондиночка $)
1461 / 976 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
12.03.2016, 13:28 2
Лучший ответ Сообщение было отмечено arcmag как решение

Решение

Заколдуй строку с помошью функции http://php.net/manual/ru/function.urlencode.php
Пусть сам PHP разбирается какие символы как кодировать.
1
346 / 321 / 203
Регистрация: 27.06.2014
Сообщений: 762
12.03.2016, 13:36  [ТС] 3
Кажется таки наше ответ, функция urlencode вроде бы справляется...

Добавлено через 1 минуту
Цитата Сообщение от Hikari Посмотреть сообщение
Заколдуй строку с помошью функции http://php.net/manual/ru/function.urlencode.php
Пусть сам PHP разбирается какие символы как кодировать.
да спасибо я вот тоже как раз нашарил про эту функцию

http://php.net/manual/en/function.urlencode.php

Добавлено через 6 минут
Мда теперь всплыла новая проблема...

После urlencode
Название файла вроде - 1920x1200 (1).jpg
превращается в 1920x1200+%281%29.jpg

и тоже отказывается выводиться на экран... беда какая то прямо...
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
12.03.2016, 13:38 4
Перед выводом urldecode() пользуйтесь и все.
0
346 / 321 / 203
Регистрация: 27.06.2014
Сообщений: 762
12.03.2016, 13:41  [ТС] 5
Пифагор, а как быть с таким

PHP
1
urlencode("1920x1200 (1).jpg"); // 1920x1200+%281%29.jpg
HTML5
1
<img src='1920x1200+%281%29.jpg'> <!-- fail -->
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
12.03.2016, 13:47 6
PHP
1
$src = urldecode('1920x1200+%281%29.jpg');
HTML5
1
<img src="<?=$src?>">
Добавлено через 1 минуту
http://sandbox.onlinephpfuncti... 77d05dff86

Добавлено через 1 минуту
Кодируем - обрабатываем - декодируем - выводим
0
346 / 321 / 203
Регистрация: 27.06.2014
Сообщений: 762
12.03.2016, 14:01  [ТС] 7
Да мне бы лучше отловить каким то образом ошибку сразу
то есть если файл без этих спец символов то выводим как есть сразу "1920x1200 (1).jpg"
если такие символы есть тогда кодируем "img#img1#icon_64x128.jpg"
______
а вот так вот делать

PHP
1
$src = urldecode('1920x1200+%281%29.jpg');
мне кажется как то странно, только что сам закодировал строку и тут же сразу раскодирую ее...
______

я попробовал сделать так,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
    $path = "../users-file/" . $login["login"] . "/image/";
 
    $images = scandir($path);
    
    for($i = 0; $i < count($images); $i++) {
        if($images[$i] == "." || $images[$i] == ".." || $images[$i] == "") continue;
        
        $src = $path . (file_exists($path . $images[$i]) ? $images[$i] : urlencode($images[$i]));
        
        echo "<img width='150' height='150' src='" . $src . "'>";
 
    }
но увы все равно такая проверка работает как то криво и не правильно...
0
Эксперт PHP
2985 / 2504 / 1181
Регистрация: 14.05.2014
Сообщений: 7,074
Записей в блоге: 1
12.03.2016, 14:58 8
arcmag, если вам нужно перекодировать только символ #, а скорее всего так и есть, т.к. этот символ является специальным для URL, то что мешает написать свою функцию?
PHP
1
2
3
4
function sharp_encode($str)
{
    return str_replace('#', '%23', $str);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2016, 14:58

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Mail() не отправляет <img src="">
Здравствуйте У меня проблемка одна Хочу отправить письмо на почту с тегом &lt;img src=&quot;&quot;&gt; ну что бы...

Img src
хотел вставить картинку в html-документ и проблема появилась юзаю phpstorm проект user в папке...

Изменение src у img
Добрый день, уважаемые гуру. У меня следующая проблема. На главной странице есть 9 изображений. У...

Поменять src в img
Привет! В тексте есть строки вида &lt;img ... src=&quot;/images/image.png&quot; ... &gt; Нужно их преобразовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.