PHP正则表达式过滤html标签属性(DEMO)


Posted in PHP onMay 04, 2016

过滤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("/<([a-z]+)[^>]*>/i","",$str );

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

(\s)alt=[^\s]*

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

$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript 

"'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记 

"'([\r\n])[\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);
PHP 相关文章推荐
PHP对字符串的递增运算分析
Aug 08 PHP
php学习之变量的使用
May 29 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
php搜索文件程序分享
Oct 30 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
CodeIgniter配置之autoload.php自动加载用法分析
Jan 20 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
Joomla使用Apache重写模式的方法
May 04 #PHP
Joomla开启SEF的方法
May 04 #PHP
Joomla简单判断用户是否登录的方法
May 04 #PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 #PHP
joomla组件开发入门教程
May 04 #PHP
Yii2前后台分离及migrate使用(七)
May 04 #PHP
微信公众平台DEMO(PHP)
May 04 #PHP
You might like
php smarty函数扩展
2010/03/15 PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
layui分页效果实现代码
2017/05/19 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
学习python处理python编码问题
2011/03/13 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
2020/07/23 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
门卫班长岗位职责
2013/12/15 职场文书
结婚周年感言
2014/02/24 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
社区端午节活动总结
2015/02/11 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技