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 相关文章推荐
PHP提取数据库内容中的图片地址并循环输出
Mar 21 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
php计算2个日期的差值函数分享
Feb 02 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 PHP
php解析非标准json、非规范json的方式实例
May 10 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
请php正则走开
2008/03/15 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php利用事务处理转账问题
2015/04/22 PHP
修复ShopNC使用QQ 互联时提示100010 错误
2015/11/08 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
详解nodeJs文件系统(fs)与流(stream)
2018/01/24 NodeJs
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
python选择排序算法的实现代码
2013/11/21 Python
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python 求10个数的平均数实例
2019/12/16 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
快速了解Python开发环境Spyder
2020/06/29 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
Html5实现用户注册自动校验功能实例代码
2016/05/24 HTML / CSS
逃课检讨书
2015/01/26 职场文书
歌舞青春观后感
2015/06/10 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
MySQL数据库之存储过程 procedure
2022/06/16 MySQL