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 相关文章推荐
第十四节--命名空间
Nov 16 PHP
PHP人民币金额数字转中文大写的函数代码
Feb 27 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
php获取文件大小的方法
Feb 26 PHP
php中session使用示例
Mar 29 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php实现计数器方法小结
Jan 05 PHP
php操作memcache缓存方法分享
Jun 03 PHP
php微信开发之上传临时素材
Jun 24 PHP
php preg_match的匹配不同国家语言实例
Dec 29 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
php-app开发接口加密详解
Apr 18 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中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
Zend Framework+smarty用法实例详解
2016/03/19 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
Python解析nginx日志文件
2015/05/11 Python
Python注释详解
2016/06/01 Python
Python编程实现正则删除命令功能
2017/08/30 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
学习心得体会
2014/01/01 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript
python代码实现备忘录案例讲解
2021/07/26 Python
Mysql数据库group by原理详解
2022/07/07 MySQL
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers