解析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&amp;MYSQL留言板源码
Jul 19 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
Dec 01 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
PHP原生函数一定好吗?
Dec 08 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php简单日历函数
Oct 28 PHP
关于php 高并发解决的一点思路
Apr 16 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
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 写文本日志实现代码
2010/05/18 PHP
php实现用户在线时间统计详解
2011/10/08 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
ThinkPHP3.2.3框架邮件发送功能图文实例详解
2019/04/23 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
滚动条变色 隐藏滚动条与双击网页自动滚屏显示代码
2009/12/28 Javascript
JavaScript QueryString解析类代码
2010/01/17 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
vuex actions传递多参数的处理方法
2018/09/18 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
angular学习之动态创建表单的方法
2018/12/07 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
跟老齐学Python之关于类的初步认识
2014/10/11 Python
python实现网站的模拟登录
2016/01/04 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
python 实现多维数组转向量
2019/11/30 Python
python接入支付宝的实例操作
2020/07/20 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
上学迟到的检讨书
2014/01/11 职场文书
运动会入场解说词300字
2014/01/25 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL