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 相关文章推荐
利用PHP实现与ASP Banner组件相似的类
Oct 09 PHP
smarty基础之拼接字符串的详解
Jun 18 PHP
解析PHP获取当前网址及域名的实现代码
Jun 23 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
Dec 19 PHP
php常见的魔术方法详解
Dec 25 PHP
基于PHP实现等比压缩图片大小
Mar 04 PHP
php错误日志简单配置方法
Jul 11 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
highchart数据源纵轴json内的值必须是int(详解)
Feb 20 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 PHP
laravel添加前台跳转成功页面示例
Oct 22 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
基于mysql的论坛(5)
2006/10/09 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP实现生成推广海报的方法详解
2018/03/14 PHP
My Desktop :) 桌面式代码
2008/12/29 Javascript
EXT窗口Window及对话框MessageBox
2011/01/27 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
vuex actions异步修改状态的实例详解
2019/11/06 Javascript
vue实现图片裁剪后上传
2020/12/16 Vue.js
js实现头像上传并且可预览提交
2020/12/25 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
python 把数据 json格式输出的实例代码
2016/10/31 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
Python爬虫实现vip电影下载的示例代码
2020/04/20 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
会计专业求职信
2014/08/10 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang