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 相关文章推荐
简单的过滤字符串中的HTML标记
Dec 25 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
详解PHP中的PDO类
Jul 06 PHP
yii添删改查实例
Nov 16 PHP
php组合排序简单实现方法
Oct 15 PHP
PHP常用的三种设计模式
Feb 17 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
Smarty模板配置实例简析
Jul 20 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实现指定字符串中查找子字符串的方法
2015/03/17 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
axios+Vue实现上传文件显示进度功能
2019/04/14 Javascript
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
python模块restful使用方法实例
2013/12/10 Python
python中 logging的使用详解
2017/10/25 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
matplotlib图例legend语法及设置的方法
2020/07/28 Python
Django日志及中间件模块应用案例
2020/09/10 Python
Alba Moda德国网上商店:意大利时尚女装销售
2016/11/14 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
幼儿园开学通知
2015/04/24 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
python实现自动化群控的步骤
2021/04/11 Python
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
python_tkinter弹出对话框创建
2022/03/20 Python
关于的python五子棋的算法
2022/05/02 Python
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL