今夜IT网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 272|回复: 0

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

[复制链接]

68

主题

68

帖子

312

积分

骑士

积分
312
发表于 2017-8-4 14:41:17 | 显示全部楼层 |阅读模式
具体如下:
因工作需要,需要采集html,并把html内容保存到数据库中。为了避免影响使用,宽高样式需要删除例如图片和div中的宽度,高度等
不过采集到的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('/' 。'\ 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; 高度:100像素;“>
    <img src =”/ images / test.jpg“width = 400 height = 200>
    <div style =”float:left; width:100px; 高度:200像素; “> </ DIV>
  </ DIV>
  <DIV风格=”宽度:100像素;高度:100像素“>
    <IMG SRC =”/图片/ test.jpg放在”宽度= 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:高度:100像素;“>
    <img src =”/ images / test.jpg“width = 400 height = 200>
    <div style =”float:left; width:100px; 高度:200像素; “> </ DIV>
  </ DIV>
  <DIV风格=”宽度:100像素;高度:100像素“>
    <IMG SRC =”/图片/ test.jpg放在”宽度= 400 HEIGHT = 200>
  < / div>
</ div>

过滤后内容:
<div style =“text-align:center”>
  <div style =“”>
    <img src =“/ images / test.jpg”>
    <div style =“float:剩下; “> </ div>
  </ div>
  <div style =”“>
    <img src =”/ images / test.jpg“>
  </ div>
</ div>

[url=http://www.wangzhanjianshegs.com/]北京网站建设[/url]北京网站建设   http://www.wangzhanjianshegs.com /

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 官方QQ群

QQ|小黑屋|手机版|今夜IT网 (京ICP备11034012号) 

Powered by Discuz! X3.2

快速回复 返回顶部 返回列表