解析PHP正则提取或替换img标记属性


Posted in PHP onJune 26, 2013

核心代码

<?php
/*PHP正则提取图片img标记中的任意属性*/
$str = '<center><img src="/uploads/images/20100516000.jpg" height="120" width="120"><br />PHP正则提取或更改图片img标记中的任意属性</center>';

//1、取整个图片代码
preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match);
echo $match[0];

//2、取width
preg_match('/<img.+(width=\"?\d*\"?).+>/i',$str,$match);
echo $match[1];

//3、取height
preg_match('/<img.+(height=\"?\d*\"?).+>/i',$str,$match);
echo $match[1];

//4、取src
preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$str,$match);
echo $match[1];

/*PHP正则替换图片img标记中的任意属性*/
//1、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg")
print preg_replace('/(<img.+src=\"?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/i',"\${1}uc/images/\${3}",$str);
echo "<hr/>";

//2、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/20100516000.jpg",并省去宽和高
print preg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1} \${2}uc/images/\${3}>",$str);
?>

PHP获取所有图片地址正则表达式

不带图片的所有图片地址匹配:

preg_match_all('/(\s+src\s?\=)\s?[\'|"]([^\'|"]*)/is', $request->input('detail_content'), $match);

带data:image/的:

preg_match_all('/(\s+src\s?\=)\s?[\'|"]([^\'|"]*)[data]/is', $request->input('detail_content'), $match);

PHP正则获取一段字符串中所有图片地址

有的时候我们需要获取文章内容或者字符串中所有的图片地址,那么我们首先想到的就是正则匹配,该怎么实现呢,下面就是小编的亲测方法

$str = '<p><img src="/upload/20180621/1529561322214.png" /></p><p><img src="/Home/images/404.jpg" style="" title="404.jpg"/></p><p><img src="/upload/20180621/1529561322214.png" style="" title="1529561322214.png"/></p><p><br/></p>';
$preg = '/<img.*?src=[\"|\']?(.*?)[\"|\']?\s.*?>/i';//匹配img标签的正则表达式
preg_match_all($preg, $str, $allImg);//这里匹配所有的img
echo '<pre>';
print_r($allImg);

输出结果如下

(  
[0] => Array  
(  
  [0] => <img src="/upload/20180621/1529561322214.png" />  
  [1] => <img src="/Home/images/404.jpg" style="" title="404.jpg"/>  
  [2] => <img src="/upload/20180621/1529561322214.png" style="" title="1529561322214.png"/>  
)  
[1] => Array  
(  
  [0] => /upload/20180621/1529561322214.png  
  [1] => /Home/images/404.jpg  
  [2] => /upload/20180621/1529561322214.png  
)  
)

到此这篇关于解析PHP正则提取或替换img标记属性的文章就介绍到这了,更多相关PHP 正则提取 替换img标记属性内容请搜素三水点靠木以前的文章或下面相关文章,希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP中显示格式化的用户输入
Oct 09 PHP
很实用的一个完整email发送程序
Oct 09 PHP
php中++i 与 i++ 的区别
Aug 08 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
php生成唯一的订单函数分享
Feb 02 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
php实现批量修改文件名称的方法
Jul 23 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
laravel 修改.htaccess文件 重定向public的解决方法
Oct 12 PHP
php 在windows下配置虚拟目录的方法介绍
Jun 26 #PHP
关于PHP自动判断字符集并转码的详解
Jun 26 #PHP
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 #PHP
php 批量生成html,txt文件的实现代码
Jun 26 #PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 #PHP
解析strtr函数的效率问题
Jun 26 #PHP
如何在smarty中增加类似foreach的功能自动加载数据
Jun 26 #PHP
You might like
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
PHP两种快速排序算法实例
2015/02/15 PHP
纯php生成随机密码
2015/10/30 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次)
2020/07/24 PHP
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
浅谈js的解析顺序 作用域 严格模式
2017/10/23 Javascript
js操作二进制数据方法
2018/03/03 Javascript
Python中逗号的三种作用实例分析
2015/06/08 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
Sanic框架Cookies操作示例
2018/07/17 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python 面向对象部分知识点小结
2020/03/09 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
美国最受欢迎的度假租赁网站:VRBO
2016/08/02 全球购物
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
动态密码技术
2012/10/18 面试题
电气工程自动化求职信
2014/03/14 职场文书
新兵入伍心得体会
2014/09/04 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
安全月宣传标语
2014/10/07 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
实习生辞职信范文
2015/03/02 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python