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编写PDF文档生成器
Oct 09 PHP
php 常用字符串函数总结
Mar 15 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
域名和cookie问题(域名后缀)
Oct 10 PHP
PHP关联链接常用代码
Nov 05 PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
php替换字符串中间字符为省略号的方法
May 04 PHP
PHP会话控制实例分析
Dec 24 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 PHP
PHP PDOStatement::columnCount讲解
Jan 30 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
MVC模式的PHP实现
2006/10/09 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
js正确获取元素样式详解
2009/08/07 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
python django 增删改查操作 数据库Mysql
2017/07/27 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
python 模拟贷款卡号生成规则过程解析
2019/08/30 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
python实现查找所有程序的安装信息
2020/02/18 Python
导致python中import错误的原因是什么
2020/07/01 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
土木工程毕业生自荐信
2013/11/12 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
诚信承诺书模板
2014/05/26 职场文书
2015年党支部公开承诺书
2015/01/22 职场文书
为什么MySQL分页用limit会越来越慢
2021/07/25 MySQL
MyBatis 动态SQL全面详解
2021/10/05 MySQL
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫