解析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
PHP字符串处理的10个简单方法
Jun 30 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 PHP
php+mysqli事务控制实现银行转账实例
Jan 29 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
PHP巧妙利用位运算实现网站权限管理的方法
Mar 12 PHP
Laravel 读取 config 下的数据方法
Oct 13 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使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
2016/08/04 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
详解JS函数防抖
2020/06/05 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Django实现文件上传下载
2019/10/06 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
写好自荐信的技巧
2013/11/08 职场文书
信息员培训方案
2014/06/12 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
西安导游词
2015/02/12 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
看上去很美观后感
2015/06/10 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS