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 获取文件路径(灵活应用__FILE__)
Feb 15 PHP
php时区转换转换函数
Jan 07 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
PHP封装cURL工具类与应用示例
Jul 01 PHP
微信小程序和php的登录实现
Apr 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
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
php实用代码片段整理
2016/11/12 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP Include文件实例讲解
2019/02/15 PHP
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
jquery 学习笔记一
2010/04/07 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
python正则实现计算器功能
2017/12/14 Python
python生成九宫格图片
2018/11/19 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python实现简单学生信息管理系统
2020/04/09 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
试用期员工考核制度
2014/01/22 职场文书
高中数学教学反思
2014/01/30 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
创业计划书之干洗店
2019/09/10 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers