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 相关文章推荐
如何限制访问者的ip(PHPBB的代码)
Oct 09 PHP
PHP4 与 MySQL 交互使用
Oct 09 PHP
php FLEA中二叉树数组的遍历输出
Sep 26 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php批量修改表结构实例
May 24 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
Feb 21 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 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
[04:28]DOTA2亚洲邀请赛小组赛第五日 TOP10精彩集锦
2015/02/03 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python学习笔记之常用函数及说明
2014/05/23 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
详解Python发送email的三种方式
2018/10/18 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
python三方库之requests的快速上手
2019/03/04 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
大学生新闻专业个人自我评价
2013/11/12 职场文书
零件设计自荐信范文
2013/11/27 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
和谐社区口号
2014/06/19 职场文书
小学生作文批改评语
2014/12/25 职场文书
教师考核评语大全
2014/12/31 职场文书
秋收起义观后感
2015/06/11 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang