• 技术文章 >后端开发 >php教程

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

    2016-06-07 17:07:42原创561

    过滤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 ("']*?>.*?'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);

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHPExcel笔记, mpdf导出_php实例 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文详解PHP实现职责链设计模式(附代码示例)• php实现通过JSON RPC与go通讯(附代码)• 浅析怎么使用PHP做异步爬取数据• PHP8.3要有新函数了!(json_validate函数说明)• 设计API接口时,要注意这些地方!
    1/1

    PHP中文网