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遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
浅析php数据类型转换
Jan 09 PHP
PHP中使用CURL模拟登录并获取数据实例
Jul 01 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
浅谈php和.net的区别
Sep 28 PHP
PHP打印输出函数汇总
Aug 28 PHP
PHP反射API示例分享
Oct 08 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
解析link_mysql的php版
2013/06/30 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
jquery中获取id值方法小结
2013/09/22 Javascript
制作jquery遮罩层效果导航菜单代码分享
2013/12/25 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
express启用https使用小记
2019/05/21 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
Python自动化运维和部署项目工具Fabric使用实例
2016/09/18 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Python按钮的响应事件详解
2019/03/04 Python
python中的yield from语法快速学习
2020/11/06 Python
python中yield的用法详解
2021/01/13 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
营销总经理的岗位职责
2013/12/15 职场文书
体育活动总结范文
2014/05/04 职场文书
第二课堂活动总结
2014/05/07 职场文书
关于童年的读书笔记
2015/06/26 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript
Redis唯一ID生成器的实现
2022/07/07 Redis