PHP正则删除HTML代码中宽高样式的方法


Posted in PHP onJune 12, 2017

本文实例讲述了PHP正则删除HTML代码中宽高样式的方法。分享给大家供大家参考,具体如下:

因工作需要,需要采集html,并把html内容保存到数据库中。为了避免影响使用,宽高样式需要删除。例如图片和div中的width, height等。

不过采集到的html中,样式的写法各有不同,例如大小写,中间有空格等。

因此使用php正则编写了下面这个方法,对这些奇葩的样式进行过滤。

代码如下:

<?php
/**
 * 清除宽高样式
 * @param String $content 内容
 * @return String
 */
function clear_wh($content){
  $config = array('width', 'height');
  foreach($config as $v){
    $content = preg_replace('/'.$v.'\s*=\s*\d+\s*/i', '', $content);
    $content = preg_replace('/'.$v.'\s*=\s*.+?["\']/i', '', $content);
    $content = preg_replace('/'.$v.'\s*:\s*\d+\s*px\s*;?/i', '', $content);
  }
  return $content;
}
?>

演示:

<?php
$html = <<<HTML
<div style="text-align:center" width="500" height="300">
  <div style="Width : 100px ; Height: 100 px;">
    <img src="/images/test.jpg" width=400 height = 200>
    <div style="float:left; width: 100px; height : 200 px;"></div>
  </div>
  <div style="width :  100 px ;height: 100px">
    <img src="/images/test.jpg" width=400 height = 200>
  </div>
</div>
HTML;
echo '<xmp>';
echo '原内容:'.PHP_EOL;
echo $html.PHP_EOL.PHP_EOL;
echo '过滤后内容:'.PHP_EOL;
echo clear_wh($html);
echo '</xmp>';
?>

输出:

原内容:
<div style="text-align:center" width="500" height="300">
  <div style="Width : 100px ; Height: 100 px;">
    <img src="/images/test.jpg" width=400 height = 200>
    <div style="float:left; width: 100px; height : 200 px;"></div>
  </div>
  <div style="width :  100 px ;height: 100px">
    <img src="/images/test.jpg" width=400 height = 200>
  </div>
</div>

过滤后内容:
<div style="text-align:center" >
  <div style=" ">
    <img src="/images/test.jpg" >
    <div style="float:left; "></div>
  </div>
  <div style="">
    <img src="/images/test.jpg" >
  </div>
</div>
PHP 相关文章推荐
用mysql内存表来代替php session的类
Feb 01 PHP
PHP 类型转换函数intval
Jun 20 PHP
php 无限分类的树类代码
Dec 03 PHP
用PHP实现读取和编写XML DOM代码
Apr 07 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
PHP页面中文乱码分析
Oct 29 PHP
php+mysql数据库查询实例
Jan 21 PHP
php实现的mongodb操作类
May 28 PHP
php文件压缩之PHPZip类用法实例
Jun 18 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
Oct 10 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 #PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 #PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 #PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 #PHP
PHP中error_reporting函数用法详细介绍
Jun 11 #PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 #PHP
PHP获取文件扩展名的方法实例总结
Jun 10 #PHP
You might like
PHP操作文件方法问答
2007/03/16 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
php for 循环使用的简单实例
2016/06/02 PHP
CI框架常用函数封装实例
2016/11/21 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
告诉大家什么是JSON
2008/06/10 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
Angular2搜索和重置按钮过场动画
2017/05/24 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
python实现将内容分行输出
2015/11/05 Python
python 重定向获取真实url的方法
2018/05/11 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
2019/12/05 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
爱普生美国官网:Epson美国
2018/11/05 全球购物
自荐信格式技巧有哪些呢
2013/11/19 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
村创先争优活动总结
2014/08/28 职场文书
防汛工作情况汇报
2014/10/28 职场文书
会计求职简历自我评价
2015/03/10 职场文书
2015年医院科室工作总结范文
2015/05/26 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
win10清理dns缓存
2022/04/19 数码科技