解析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 相关文章推荐
删除及到期域名的查看(抢域名必备哦)
May 14 PHP
精通php的十大要点(上)
Feb 04 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
php购物网站支付paypal使用方法
Nov 28 PHP
基于Zookeeper的使用详解
May 02 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
php 伪静态之IIS篇
Jun 02 PHP
php数组索引与键值操作技巧实例分析
Jun 24 PHP
Yii2简单实现多语言配置的方法
Jul 23 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 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
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
一个PHP的String类代码
2010/04/20 PHP
PHP daddslashes 使用方法介绍
2012/10/26 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
laravel框架中间件 except 和 only 的用法示例
2019/07/12 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
JavaScript字符串对象
2017/01/14 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
vue使用iframe嵌入网页的示例代码
2020/06/09 Javascript
countUp.js实现数字动态变化效果
2019/10/17 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
python字符串中的单双引
2017/02/16 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python高斯消除矩阵
2019/01/02 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
Java程序员综合测试题
2014/04/25 面试题
《晏子使楚》教学反思
2014/02/08 职场文书
导航工程专业自荐信
2014/09/02 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
小马王观后感
2015/06/11 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL