регулярное выражение для поиска ‘что-нибудь & lt; script & gt; что-нибудь & lt; / script & gt; что угодно где угодно в строке

я пытаюсь найти тег script как open () и close () в моей строке php. Пожалуйста, найдите мой код ниже

public function custom_xss_clean($str){
if(!preg_match('/(<\/?)(script|html)(>*)/i', $str)){
return true;
} else {
$this->form_validation->set_message('custom_xss_clean','The %s field invalid');
return false;
}
}

Этот код работает нормально в онлайн-инструменте, но не в моем коде для строки

<script>alert(10)</script>

Я пробовал так много шаблонов, но не повезло. Пожалуйста, помогите спасибо заранее.

-1

Решение

Попробуй это

preg_match('/<script>[a-zA-Z0-9 \. \n \t\r \* \\ \* ~`!@#$%^&*()-_+={}\[\]\'":;?\/><.,|]*<\/script>/', $str);

Проверен также вы можете проверить вживую https://regex101.com/r/ih2C3F/1/

0

Другие решения

Вы имеете в виду, что вы хотите получить все между тегами сценария?

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U","<script>example: </script><div align=left>this is a test</div>",$out, PREG_PATTERN_ORDER);
echo '<pre>',
print_r($out);

если вы ищете xss_clean в codeigniter, перейдите по этой ссылке щелчок

0

По вопросам рекламы [email protected]