正则表达式,用于找出任何<script>任何东西</script>任何东西&#39;字符串中的任何地

时间:2017-09-13 09:37:55

标签: php regex codeigniter validation server-side-validation

我想在我的php字符串中找到open()和close()的脚本标记。请在下面找到我的代码

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 个答案:

答案 0 :(得分: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);

如果您在codeigniter中寻找xss_clean,请点击此链接click

答案 1 :(得分:0)

试试这个

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

经过测试,您也可以查看实时https://regex101.com/r/ih2C3F/1/