Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как удалить содержимое STYLE и SCRIPT 
:(
    Опции темы
comhunt
Дата 2.5.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Каким образом модно сделать то что написано в сабже?

Попробовал сконструировать такую конструкцию:

$content=~s/<script.*>.*<\/script>//g;

Не работает. И самое главное я не понимаю почему именно?
PM MAIL   Вверх
shamber
Дата 2.5.2010, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: нет
Всего: 18



comhunt, вы пример того что удаляете приведите
PM MAIL Jabber   Вверх
comhunt
Дата 3.5.2010, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Пример контента, которые необходимо удалить:


<script>
function blablabla(){

}
</SCRIPT>

<STYLE>
.class{color:#FF0000;}

</style>
PM MAIL   Вверх
DurRandir
Дата 3.5.2010, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 335
Регистрация: 27.9.2009

Репутация: 2
Всего: 17



Почему не работает - потому что у вас case-sensitive сравнение, а закрывающий тег - в верхнем регистре. Но регулярка всё равно неверна, скормите ей
<script></script> disappears <script></script> remains

Потому что у вас "жадные" модификаторы количества. Но и это ещё не всё. Что вы хотите получить после обработки вот такого куска:

<script<script></script>> - у вас будет на выходе <script>, ну и закрывающаяся скобка точно так же делается. Вуаля.
PM   Вверх
Logo
Дата 21.5.2013, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 5
Всего: 10



Правильней
Код

$content =~ s/<script.*?>.*?<\/script\s*>//gis;

- модификатор i игнорирования регистра, s - точка совпадает в том числе и с переводом строки.

Но если хотите не допустить скриптов на странице и защитится от XSS, лучше поискать готовое решение, либо подойти к делу более основательно, почитав соответствующие статьи.
Помимо тега <script> скрипты можно включать в разные атрибуты, например onclick, ссылки с урлом javascript://, в старых версиях ie css expression.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.1252 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.