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中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
显示程序执行时间php函数代码
Aug 29 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
Jan 14 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
浅谈php命令行用法
Feb 04 PHP
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
Mar 29 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
多个Laravel项目如何共用migrations详解
Sep 25 PHP
php防止表单重复提交实例讲解
Feb 11 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 $_SERVER详解
2009/01/16 PHP
PHP使用递归生成文章树
2015/04/21 PHP
php验证码实现代码(3种)
2015/09/07 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
Node.js模块加载详解
2014/08/16 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
简介alert()与console.log()的不同
2015/08/26 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
python循环监控远程端口的方法
2015/03/14 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
乒乓球兴趣小组活动总结
2014/07/08 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
停车场管理协议书范本
2014/10/08 职场文书
申请吧主发表的感言
2015/08/03 职场文书
手写实现JS中的new
2021/11/07 Javascript