php 过滤html正则,高级正则技巧PHP正则表达式过滤html标签属性(DEMO)

原标题:高级正则技巧PHP正则表达式过滤html标签属性(DEMO)

过滤html标签在php中可以有内置的函数了,但它过滤的太干净了,我们就整理了一下些利用正则来过滤指定html标签的例子,具体如下所示。 采集的时候有时候需要过滤掉多余的标签属性,比如 img标签过滤掉除了src属性之外的所有属性例如删除titile alt等属性以及一些脚的onclick属性等。 例如 过滤除了src之外的所有属性:

$str=preg_replace('/s(?!src)[a-zA-Z]+=['"]{1}[^'"]+['"]{1}/iu',' $str);

上面的实例代码是过滤掉除了src属性外的所有标签属性. 过滤设置过滤除了alt和src之外的所有属性 代码如下:

$str=preg_replace('/s(?!(src|alt))[a-zA-Z]+=[^s]*/iu',' ',$str);

过滤所有html标签的属性的正则表达式:

$str=preg_replace("/]*>/i","",$str);

只过滤alt属性的正则表达式:

(s)alt=[^s]*

过滤所有html标签的属性的正则表达式:

$search=array("']*?>.*?>'si",// 去掉 java

"']*?>'si",// 去掉 HTML 标记

"'([rn])[s]+'",// 去掉空白字符

"'&(quot|#34);'i",// 替换 HTML 实体

"'&(amp|#38);'i",

"'&(lt|#60);'i",

"'&(gt|#62);'i",

"'&(nbsp|#160);'i"

);// 作为 PHP 代码运行

$replace=array("","","1",""","&",""," ");

$html=preg_replace($search,$replace,$html);

给猿哥打call,赚点零花钱,顺便自己也可以领个红包。

觉得麻烦?

可以直接copy下面的吱口令打开支付宝马上领取:

【支付宝邀你瓜分10亿现金红包啦!红包天天都能领,周五周六及双十二期间最高可达1212元】红包可在实体门店付款时抵扣#吱口令#长按复制此消息,打开支付宝就能领取!AS20DB884N返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值