解析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 5.3.0 安装分析心得
Aug 07 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
MySQL 日期时间函数常用总结
Jun 12 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
php去除html标记的原生函数详解
Jan 27 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
php array_search() 函数使用
2010/04/13 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
动态调用CSS文件的JS代码
2010/07/29 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
js跳转页面方法总结
2014/01/29 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
js变量提升深入理解
2016/09/16 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
python+Django+apache的配置方法详解
2016/06/01 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
护理专业大学生自我推荐信
2014/01/25 职场文书
会走路的树教学反思
2014/02/20 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
老人与海读书笔记
2015/06/26 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技