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项目开发中最常用的自定义函数整理
Dec 02 PHP
用php的ob_start来生成静态页面的方法分析
Mar 09 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
Drupal7 form表单二次开发要点与实例
Mar 02 PHP
PHP反射使用实例和PHP反射API的中文说明
Jul 02 PHP
PHP中的表达式简述
May 29 PHP
php处理带有中文URL的方法
Jul 11 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
php观察者模式应用场景实例详解
Feb 03 PHP
PHP实时统计中文字数和区别
Feb 28 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中使用与Perl兼容的正则表达式
2006/11/26 PHP
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
微信小程序 详解下拉加载与上拉刷新实现方法
2017/01/13 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
Python 基础教程之包和类的用法
2017/02/23 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Python pandas用法最全整理
2019/08/04 Python
vue常用指令代码实例总结
2020/03/16 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
python学习笔记之多进程
2020/08/06 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
卫校中专生个人自我评价
2013/09/19 职场文书
高中毕业的自我鉴定
2013/12/09 职场文书
2014年保卫工作总结
2014/12/05 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书