Регулярное выражение для поиска "что-нибудь <script>что-нибудь</ script> что-нибудь" в любом месте строки

Я пытаюсь найти тег scrip t как 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>

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

2 ответа

Решение

Попробуй это

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

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

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

<?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, перейдите по этой ссылке, нажмите

Другие вопросы по тегам