Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: убрать экранирование в тегах img

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ladan
Отправлено: 13 Марта, 2012 - 12:42:45
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Добрый день, есть строка с заэкранированными двойными кавычками, нужно убрать экранирование в нутри тегах img

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $text = "<p> \\\"ясное небо\\\" <img src=\\\"http://i024.radikal.ru/1203/7e/a3c322da60c2.jpg\\\" alt=\\\"\\\" width=\\\"200\\\" height=\\\"326\\\" /> </p> \\\"и здесь\\\" <img src=\\\"http://s019.radikal.ru/i626/1203/58/393ec5151057.jpg\\\" alt=\\\"\\\" width=\\\"200\\\" height=\\\"326\\\" />";
  3.  

подскажите пожалуйста как правильно регулярное выражение написать? Огорчение
 
 Top
Мелкий Супермодератор
Отправлено: 13 Марта, 2012 - 13:38:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)






-----
PostgreSQL DBA
 
 Top
ladan
Отправлено: 13 Марта, 2012 - 13:44:23
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Мелкий пишет:

Не совсем, нужно на выходе примерно такое:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. /*
  3. <p> \"ясное небо\" <img src="http://i024.radikal.ru/1203/7e/a3c322da60c2.jpg" alt="" width="200" height="326" /> </p> \"и здесь\" <img src="http://s019.radikal.ru/i626/1203/58/393ec5151057.jpg" alt="" width="200" height="326" />
  4. */
  5.  

Экранирование убирается только в тегах img
 
 Top
Мелкий Супермодератор
Отправлено: 13 Марта, 2012 - 13:48:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. $sResult = preg_replace_callback('@<img[^>]+>@', function($match){
  2. return stripslashes($match[0]);
  3. }, $text)

Ну если не париться и PHP5.3+


-----
PostgreSQL DBA
 
 Top
ladan
Отправлено: 13 Марта, 2012 - 16:20:12
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Мелкий пишет:
PHP:
скопировать код в буфер обмена
  1. $sResult = preg_replace_callback('@<img[^>]+>@', function($match){
  2. return stripslashes($match[0]);
  3. }, $text)

Ну если не париться и PHP5.3+


СПАСИБО! Вы мозг php Улыбка

CODE (htmlphp):
скопировать код в буфер обмена
  1. А такой вопрос, в Вашей регулярке @<img[^>]+>@, внутри квадратных скобках я так понял- это любой символ, кроме закрывающегося тега.
  2.  Для чего так нужно писать, если на конце уже стоит закрывающийся тег?
  3.  
  4. и в чем разница @<img.+>@ и @<img.+?>@
  5.  
  6.  

(Отредактировано автором: 13 Марта, 2012 - 16:22:28)

 
 Top
snikers987
Отправлено: 13 Марта, 2012 - 17:36:35
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Цитата:
и в чем разница @<img.+>@ и @<img.+?>@

Первый вариант захватывает найбольшее вхождение, второй найменьшее.
Цитата:
А такой вопрос, в Вашей регулярке @<img[^>]+>@, внутри квадратных скобках я так понял- это любой символ, кроме закрывающегося тега.

Для чего так нужно писать, если на конце уже стоит закрывающийся тег?

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

(Отредактировано автором: 13 Марта, 2012 - 17:39:39)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Мелкий Супермодератор
Отправлено: 13 Марта, 2012 - 18:00:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




ladan пишет:
Для чего так нужно писать, если на конце уже стоит закрывающийся тег?

Поэкспериментируйте Подмигивание
У меня просто так быстрее получается регулярно выразиться, что нужно именно содержимое тега и именно его одного.
Иначе можно получить слишком много - от <img до вообще последнего встретившегося >, т.е. ухватили бы всё и между тегами img. Это в случае жадного поиска.
Если не поставить, что должен быть явно > - то получится от начала <img до конца всего фрагмента при жадном и только сам <img с пробелом при нежадном.


-----
PostgreSQL DBA
 
 Top
ladan
Отправлено: 13 Марта, 2012 - 18:35:51
Post Id


Новичок


Покинул форум
Сообщений всего: 49
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




snikers987 пишет:
Цитата:
и в чем разница @<img.+>@ и @<img.+?>@

Первый вариант захватывает найбольшее вхождение, второй найменьшее.
Цитата:
А такой вопрос, в Вашей регулярке @<img[^>]+>@, внутри квадратных скобках я так понял- это любой символ, кроме закрывающегося тега.

Для чего так нужно писать, если на конце уже стоит закрывающийся тег?

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


это я понял, что может быть любой символ, кроме >

Но явно в
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <img src=\\\"http://i024.radikal.ru/1203/7e/a3c322da60c2.jpg\\\" alt=\\\"\\\" width=\\\"200\\\" height=\\\"326\\\" />
  3.  

нету символа >
Прописал даже так @<img[^а-я]+>@ и также регулярку удовлетворяет, тогда как @<img.+>@ не удовлетворяет
(Добавление)
все, вроде разобрался с жадными и ленивыми
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB