解析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 相关文章推荐
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
Nov 23 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中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php下Memcached入门实例解析
2015/01/05 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
jquery防止重复执行动画避免页面混乱
2014/04/22 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
jQuery简单绑定单个事件的方法示例
2017/06/10 jQuery
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[02:08]什么藏在DOTA2 TI9“小紫本”里?斧王历险记告诉你!
2019/05/17 DOTA
Python单链表简单实现代码
2016/04/27 Python
python设置环境变量的作用和实例
2019/07/09 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
自我介绍演讲稿
2014/01/15 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
党员干部观看《周恩来四个昼夜》思想汇报
2014/09/10 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
会议主持人开场白台词
2015/05/28 职场文书
白银帝国观后感
2015/06/17 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
nginx搭建NFS网络文件系统
2022/04/14 Servers