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个人网站架设连环讲(一)
Oct 09 PHP
很实用的一个完整email发送程序
Oct 09 PHP
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
php在项目中寻找代码的坏味道(综艺命名)
Jul 19 PHP
php实现图片添加水印功能
Feb 13 PHP
php合并数组中相同元素的方法
Nov 13 PHP
PHP常用文件操作函数和简单实例分析
Jun 03 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
php精度计算的问题解析
Jun 21 PHP
php回调函数处理数组操作示例
Apr 13 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
基于Zookeeper的使用详解
2013/05/02 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
php旋转图片90度的方法
2013/11/07 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
PHP线程的内存回收问题
2016/07/08 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
JSONP 跨域共享信息
2012/08/16 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
2016/12/13 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
[54:56]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第三局
2016/03/06 DOTA
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
python对html过滤处理的方法
2018/10/21 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
表扬信格式
2014/01/12 职场文书
机修工工作职责
2014/02/21 职场文书
暑假学习心得体会
2014/09/02 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
运动会致辞稿
2015/07/29 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis