php正则表达式过滤html标签属性

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

过滤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);
 
标签: HTML 正则表达式
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Taro -- 微信小程序wxParse达到html转换wxml
    Taro -- 微信小程序wxParse达到html转换wxml
    Taro微信小程序可以用wxParse来达到html转换wxml的效果:https://github.com/NervJS/taro-components-test/blob/master/src/pages/wxParse/wxParse.jsimport Taro, { Component } from '@tarojs/taro'import { View, Text, Image, Button } from '@tarojs/com
    02-09
  • TypeScript的HTML5游戏
    

自动化的基于TypeScript的HTML5游戏开发
    TypeScript的HTML5游戏 自动化的基于Type
     自动化的基于TypeScript的HTML5游戏开发自动化的开发流程在HTML5游戏开发或者说在Web客户端开发中,对项目代码进行修改之后,一般来说,需要手动刷新浏览器来查看代码修改后运行结果。这种手动的方式费时费力,降低了开发效率。另外,如果我们使用了如TypeS
    02-09
  • TypeScript 文件引入 Html (ts import html we
    我们的目标是把html引入ts文件,webpack打包时就能把html打进js文件,减少文件加载啦 1 安装 text-loadernpm install text-loader --save-dev2 webpack 配置里新增 text-loader 为文本加载器module: {rules: [ {    test: /\.html$/,    use: 'raw-loade
    02-09
  • 关于Typescript - HTMLElement上使用append / p
    因最近在做浏览器打印界面水印的问题,用到后台动态创建标签,样式的处理用到了append,prend函数,Angular build打包的时候却抛出了异常↓ERROR in src/app/routes/contract-manage/componets/contract-preview/contract-preview.component.ts(304,28): error
    02-09
  • ruby html解析器
    Aaron Patterson和Mike Dalessio开发了一个新的Ruby解析HTML/XML的ruby库 - Nokogiri。他的速度比目前应用的最广泛的Hpricot还要快许多。经过Benchmark测试表明,Nokogiri在加载XML文档的速度是Hpricot的7倍,在XPATH搜索的速度是Hpricot的5倍,而在CSS选择
    02-09
  • dart.html未找到-在Flutter遇到的第一个坑 dart和flutter的区别
    dart.html未找到-在Flutter遇到的第一个坑 dart
    怎么解决呢?在文件main.dart中注释掉 import 'dart:html';这一行;注意:有时候某次的修改main.dart代码有可能导致Android studio再次自动导入 import dart:html导致再次编译失败,只需要再次注释或者删除即可对此若有更好的解释欢迎评论????
    02-09
  • Dart: 解析html字符串
    安装html包import 'package:http/http.dart' as http;import 'package:html/parser.dart' show parse;import 'package:html/dom.dart';var response = await http.get('xxx.html');Document document = parse(response.body);// docume
    02-09
  • dart系列之:HTML的专属领域,除了javascript之外
    目录简介DOM操作CSS操作处理事件总结简介虽然dart可以同时用作客户端和服务器端,但是基本上dart还是用做flutter开发的基本语言而使用的。除了andorid和ios之外,web就是最常见和通用的平台了,dart也提供了对HTML的原生支持,这个支持就是dart:html包。dart:h
    02-09
  • 使用nodejs搭建服务器显示HTML页面
    使用nodejs搭建服务器显示HTML页面
    https://www.jianshu.com/p/edce7af3691a目录结构:   在命令行输入:npm init2、安装express在命令行输入:npm install express3、然后创建server.js文件const express = require('express')const path = require('path')const app = express()app.use(ex
    02-09
  • Html5NodeJs安装less之千辛万苦CMD系列
    Html5NodeJs安装less之千辛万苦CMD系列
    如题,这个东西很是费了一般脑筋上一次讲了如何在浏览器端解析less文件,这次是在cmd中使用npm中的less模块来解析详解如下首下我们去下载一个NodeJs,   我下载的是4.44版本,一路next之后,因为文件不大,就直接在C盘了当然我个人是不推荐在C盘的,你喜欢在
    02-09
点击排行