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+MYSQL的文章管理系统(一)
Oct 09 PHP
php中stream(流)的用法
Mar 25 PHP
php实现的发送带附件邮件类实例
Sep 22 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
Mar 28 PHP
PHP的swoole扩展安装方法详细教程
May 18 PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
Jul 20 PHP
yii2 开发api接口时优雅的处理全局异常的方法
May 14 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 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
实现树状结构的两种方法
2006/10/09 PHP
PHP调用三种数据库的方法(3)
2006/10/09 PHP
实用函数3
2007/11/08 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
JS实现弹出下载对话框及常见文件类型的下载
2017/07/13 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
vue使用video插件vue-video-player的示例
2020/10/03 Javascript
[02:27]2018DOTA2亚洲邀请赛趣味视频之钓鱼大赛 谁是垂钓冠军?
2018/04/05 DOTA
Python实现的合并两个有序数组算法示例
2019/03/04 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
财务方面个人工作的自我评价
2013/12/28 职场文书
机关门卫岗位职责
2013/12/30 职场文书
消防宣传口号
2014/06/16 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
入党现实表现材料
2014/12/23 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
Nginx反向代理、重定向
2022/04/13 Servers
python playwrigh框架入门安装使用
2022/07/23 Python