PHP正则获取页面所有图片地址


Posted in PHP onMarch 23, 2016
<?php
//取得页面所有的图片地址
function getimages($str)
{
$match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/";
preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER);
return $out;
}
?>

/<img.*srcs*=s*["|']?s*([^>"'s]*)/i

,我使用kindeditor保存文章,但是需要取出第N个图片的地址作为文章的标志图片,文章代码(内容的html)保存到数据库一个字段,然后图片地址保存到另外一个字段.我就是使用上面的正则解决的.

我说明下,上面的地址是直接获取img标签内src属性的值.在使用该正则的php页面访问该路径如果能找到图片的话,可以直接使用,如果不能,你可以使用preg_match_all将所有地址先保存到数组,然后处理路径,比如获取文件名称(不含路径部分),然后重新组成url,再删除图片.

我的例子:

preg_match_all("/<img.*srcs*=s*["|']?s*([^>"'s]*)/i",str_ireplace("\","",$content),$arr);

呵呵 我的内容部分被php给加上转义了,所以我需要先把去除,str_ireplace("\","",$content),然后将匹配的内容保存到$arr数组(二维的).

$arr[1]就是存储该路径的数组.

实例

<?php
$ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by https://3water.com 绿色软件
$str = '<p><img title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" src="https://3water.com /data/soft_img/2010091101619.jpg" /></p><p><img title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" src="https://3water.com /data/soft_img/2010091029938.jpg" /></p><p><img title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" src="https://3water.com /data/soft_img/2010092839019.jpg" /></p>';
preg_match_all("/(href|src)=(["|']?)([^ "'>]+.($ext))\2/i", $str, $matches);
var_dump($matches);
?>

结果

array(5) {
[0]=>
array(3) {
[0]=>
string(57) "src="https://3water.com /data/soft_img/2010091101619.jpg""
[1]=>
string(57) "src="http://www.hzhuti.com/sonyericsson/w715/ 2010091029938.jpg""
[2]=>
string(57) "src="https://3water.com /data/soft_img/2010092839019.jpg""
}
[1]=>
array(3) {
[0]=>
string(3) "src"
[1]=>
string(3) "src"
[2]=>
string(3) "src"
}
[2]=>
array(3) {
[0]=>
string(1) """
[1]=>
string(1) """
[2]=>
string(1) """
}
[3]=>
array(3) {
[0]=>
string(51) "https://3water.com /data/soft_img/2010091101619.jpg"
[1]=>
string(51) "https://3water.com /data/soft_img/2010091029938.jpg"
[2]=>
string(51) "https://3water.com /data/soft_img/2010092839019.jpg"
}
[4]=>
array(3) {
[0]=>
string(3) "jpg"
[1]=>
string(3) "jpg"
[2]=>
string(3) "jpg"
}
}

PHP正则匹配图片并给图片加链接详解

$newstext=preg_replace(preg_replace('/(<img[^>]+srcs*=s*”?([^>"s]+)”?[^>]*>)/im', ‘<a href=”$2″>$1</a>', $newstext);

1.preg_replace和str_replace的区别:

str_replace只是纯字符替换,而preg_replace才是正则替换

2.$0,$1,$2等的说明:

$0指的是被整个模式所匹配的文本;

$1指的是首个 ( ) 引用的串;

$2指的是第二个()引用的串; 以此类推

有关PHP正则获取页面所有图片地址的知识,小编就给大家介绍到这里,希望对大家有所帮助!

PHP 相关文章推荐
封装一个PDO数据库操作类代码
Sep 09 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
关于php内存不够用的快速解决方法
Oct 26 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
thinkphp3.2点击刷新生成验证码
Feb 16 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
php post json参数的传递和接收处理方法
May 31 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
php根据地址获取百度地图经纬度的实例方法
Sep 03 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 #PHP
php获取文件后缀的9种方法
Mar 22 #PHP
Zend Framework教程之Zend_Registry对象用法分析
Mar 22 #PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 #PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 #PHP
Zend Framework框架路由机制代码分析
Mar 22 #PHP
PHP实现补齐关闭的HTML标签
Mar 22 #PHP
You might like
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
react native仿微信PopupWindow效果的实例代码
2017/08/07 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
关于react中组件通信的几种方式详解
2017/12/10 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python脚本第一行如何写
2020/08/30 Python
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
2014高考励志标语
2014/06/05 职场文书
节约用电标语
2014/06/17 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
教师先进事迹材料
2014/12/16 职场文书
班主任经验交流材料
2014/12/16 职场文书
保研专家推荐信范文
2015/03/25 职场文书
检讨书格式范文
2015/05/07 职场文书
2016特色励志班级口号
2015/12/24 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android