php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)


Posted in PHP onAugust 13, 2013

因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标签会了,取别的标签任意属性自然也会了):

<?php 
/*正则取图片img标记中的任意属性*/ $word = '<p height="22" align="cenetr">111 22</p> <img src="/upload/images/aaa.jpg" width="100"><div style="float:left;">中国人</div>'; 
//取整个图片代码 
preg_match('/</s*img/s+[^>]*?src/s*=/s*(/'|/")(.*?)//1[^>]*?//?/s*>/i',$word,$matches); 
echo $matches[0];//结果:<img src="/upload/images/aaa.jpg" width="100"> 
$word = '<p height="22" align="cenetr">111 22</p> <img height="60" src="/upload/images/aaa.jpg" width=100 style=><div style="float:left;">中国人</div>'; 
//取width 
preg_match('/<img.+(width=/"?/d*/"?).+>/i',$word,$matches); 
echo $matches[1]; 
//取height 
preg_match('/<img.+(height=/"?/d*/"?).+>/i',$word,$matches); 
echo $matches[1]; 
//取src 
preg_match('/<img.+src=/"?(.+/.(jpg|gif|bmp|bnp|png))/"?.+>/i',$word,$matches); 
echo $matches[1]; 
/*正则替换去掉或改变图片img标记中的任意属性***************************************************************/ 
$str = '<p height="22" align="cenetr">111 22</p> <img height="60" src="/upload/images/aaa.jpg" width=100 style=><div style="float:left;">中国人</div> 
<p height="22" align="cenetr">31313 224344</p> <img src="/upload/images/bbb.jpg" height="60" width=100 style=><div style="float:left;">1212121</div>'; 
//改变src属性(此处将原来的src="/upload/images/bbb.jpg"改变为src="/upload/_thumbs/Images/bbb.jpg") 
print preg_replace('/(<img.+src=/"?.+)(images//)(.+/.(jpg|gif|bmp|bnp|png)/"?.+>)/i',"/${1}_thumbs/Images//${3}",$str); 
/*改变src属性, 
此处将原来的src="/upload/images/bbb.jpg"改变为src="/upload/_thumbs/Images/bbb.jpg",并舍弃宽和高 
(比如你想在前台显示缩略图,但数据库中存储的是原图的路径。为什么要舍弃宽高??你缩略图啊!还是原图的宽高,会怎样???) 
*/ 
print preg_replace('/(<img).+(src=/"?.+)images//(.+/.(jpg|gif|bmp|bnp|png)/"?).+>/i',"/${1} /${2}_thumbs/Images//${3}>",$str); 
?>
PHP 相关文章推荐
php visitFile()遍历指定文件夹函数
Aug 21 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
解析PHP中如何将数组变量写入文件
Jun 06 PHP
PHP设计模式之代理模式的深入解析
Jun 13 PHP
php 在windows下配置虚拟目录的方法介绍
Jun 26 PHP
php中file_exists函数使用详解
May 08 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
PHP未登录自动跳转到登录页面
Dec 21 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 #PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 #PHP
php 下载保存文件保存到本地的两种实现方法
Aug 12 #PHP
CodeIgniter上传图片成功的全部过程分享
Aug 12 #PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 #PHP
php中的Base62类(适用于数值转字符串)
Aug 12 #PHP
PHP实现把数字ID转字母ID
Aug 12 #PHP
You might like
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
VUE+Element环境搭建与安装的方法步骤
2019/01/24 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
微信小程序分享小程序码的生成(带参数)以及参数的获取
2020/03/25 Javascript
在Python中使用正则表达式的方法
2015/08/13 Python
python3中函数参数的四种简单用法
2018/07/09 Python
python里 super类的工作原理详解
2019/06/19 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
python如何实现异步调用函数执行
2019/07/08 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
详解如何解决canvas图片getImageData,toDataURL跨域问题
2018/09/17 HTML / CSS
HTML5 图片预加载的示例代码
2020/03/25 HTML / CSS
电子技术专业中专生的自我评价
2013/12/17 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
JavaScript设计模式之原型模式详情
2022/06/21 Javascript
nginx配置指令之server_name的具体使用
2022/08/14 Servers