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 相关文章推荐
Oracle 常见问题解答
Oct 09 PHP
做一个有下拉功能的留言版
Oct 09 PHP
用ODBC的分页显示
Oct 09 PHP
给初学PHP的5个入手程序
Nov 23 PHP
基于empty函数的输出详解
Jun 17 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
PHP折半(二分)查找算法实例分析
May 12 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 25 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
生成sessionid和随机密码的例子
2006/10/09 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
JS取得绝对路径的实现代码
2015/01/16 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
python3中使用__slots__限定实例属性操作分析
2020/02/14 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
怎样声明子类
2013/07/02 面试题
趣味活动策划方案
2014/02/08 职场文书
大学运动会入场词
2014/02/22 职场文书
人才市场接收函
2015/01/30 职场文书
Python+Appium新手教程
2021/04/17 Python
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js