解析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 加密与解密的斗争
Apr 17 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
php 解决旧系统 查出所有数据分页的类
Aug 27 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
php取得字符串首字母的方法
Mar 25 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
php解析xml方法实例详解
May 12 PHP
PHP可变函数学习小结
Nov 29 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
在laravel中使用Symfony的Crawler组件分析HTML
Jun 19 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 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
获得Google PR值的PHP代码
2007/01/28 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
Angular2学习笔记之数据绑定的示例代码
2018/01/03 Javascript
nodejs基于WS模块实现WebSocket聊天功能的方法
2018/01/12 NodeJs
React中如何引入Angular组件详解
2018/08/09 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
python实现音乐下载器
2018/04/15 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
python异常处理、自定义异常、断言原理与用法分析
2020/03/23 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
体育教师工作总结的自我评价
2013/10/10 职场文书
购房协议书范本
2014/10/02 职场文书
幼儿教师2014年度工作总结
2014/12/16 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
企业投资意向书
2015/05/09 职场文书
如何理解Vue简单状态管理之store模式
2021/05/15 Vue.js
ant design charts 获取后端接口数据展示
2022/05/25 Javascript