解析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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
PHP实现下载功能的代码
Sep 29 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
php中文繁体和简体相互转换的方法
Mar 21 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
总结PHP中DateTime的常用方法
Aug 11 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
php ajax confirm 删除实例详解
Mar 06 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php银联网页支付实现方法
2015/03/04 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
PHP框架性能测试报告
2016/05/08 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
JavaScript实现在数组中查找不同顺序排列的字符串
2014/09/26 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
Nodejs 数组的队列以及forEach的应用详解
2021/02/25 NodeJs
python获取标准北京时间的方法
2015/03/24 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python多线程之事件Event的使用详解
2018/04/27 Python
Php多进程实现代码
2018/05/07 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
建筑专业毕业生求职信
2014/09/30 职场文书
院系推荐意见
2015/06/05 职场文书
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers