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 相关文章推荐
网站当前的在线人数
Oct 09 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
php抽奖小程序的实现代码
Jun 18 PHP
ThinkPHP之N方法实例详解
Jun 20 PHP
PHP基本语法总结
Sep 06 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 PHP
php微信开发之批量生成带参数的二维码
Jun 26 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
Nov 15 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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学习笔记(毕业设计)
2012/02/21 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
php实现网站留言板功能
2015/11/04 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
挂靠协议书范本
2014/04/22 职场文书
社区服务活动总结
2014/05/07 职场文书
工商管理自荐书
2014/07/06 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
股权投资协议书
2016/03/23 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书
PHP新手指南
2021/04/01 PHP
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP