PHP去除html所有on事件输出

$str = "demo@qq.com
test-demo@vip.qq.com
i+box@gmail.com
demo@live.com
@sad2as sad阿迪萨斯 dsad sad as @sada1s
@萨达 阿萨德aaa
@sa阿萨德 as阿萨德
萨达萨达按时 @萨达是a 按时
127.0.0.1
http://tool.lu/
123456789012345
#asdas#多多
sadasd#萨达
#萨asdas#2313
#阿斯达#阿斯达
#122221#
123123rrrr
下面是一些测试实例:
history: v1.0 正则表达式测试工具上线
v1.1 2012-03-25 修复高亮偏移错位的问题
v1.2 2014-06-15 增加生成程序代码的功能
v1.3 2014-09-04 增加java代码的生成,修正邮箱的匹配
1. 截至目前为止,最长域名后缀 .cancerresearch
todo: 加上一些常用的正则表达式
notice: 由于我们使用的是js的正则引擎,所以暂时还不能支持逆序环视
<img on9qewe='sadasdalert(aa)'/<img/src=1 onerror=on1qewe=alert(11)
<div on5errore= onerrwww= >
<img/src=1 o onerror=alert(1) onerror=alonerror=onerror=oncli
=111>
<img One2we= ondsasd=asdonerr=w asdasd
";

 

$patterns = '/(<\w*\s)*(((on\w*=)*|(on\w*\s*=))*)/Ui';

$replacement = '$1';

echo preg_replace($patterns, $replacement, $str);

 

输出:

demo@qq.com
  test-demo@vip.qq.com
  i+box@gmail.com
  demo@live.com
  @sad2as sad阿迪萨斯 dsad sad as @sada1s
  @萨达 阿萨德aaa
  @sa阿萨德 as阿萨德
  萨达萨达按时 @萨达是a 按时
  127.0.0.1
  http://tool.lu/
  123456789012345
  #asdas#多多
  sadasd#萨达
  #萨asdas#2313
  #阿斯达#阿斯达
  #122221#
  123123rrrr
  下面是一些测试实例:
  history: v1.0 正则表达式测试工具上线
  v1.1 2012-03-25 修复高亮偏移错位的问题
  v1.2 2014-06-15 增加生成程序代码的功能
  v1.3 2014-09-04 增加java代码的生成,修正邮箱的匹配
  1. 截至目前为止,最长域名后缀 .cancerresearch
  todo: 加上一些常用的正则表达式
  notice: 由于我们使用的是js的正则引擎,所以暂时还不能支持逆序环视
  <img 'sadasdalert(aa)'/<img/src=1 alert(11)
  <div >
  <img/src=1 o alert(1) al111>
  <img asdw asdasd    

 

posted @ 2016-03-13 20:16  小福仔  阅读(435)  评论(0编辑  收藏  举报