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 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
扩展你的 PHP 之入门篇
Dec 04 PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 PHP
PHP自动选择 连接本地还是远程数据库
Dec 02 PHP
php文件操作实例代码
May 10 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
php生成QRcode实例
Sep 22 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
PHP与Web页面的交互示例详解二
Aug 04 PHP
你真的了解PHP中的引用符号(&)吗
May 12 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 set_error_handler()函数使用详解(示例)
2013/11/12 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
PHP加密解密类实例代码
2016/07/20 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
JQuery导航菜单选择特效
2016/04/11 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
Python新手学习标准库模块命名
2020/05/29 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
HTML5拖拽功能实现的拼图游戏
2018/07/31 HTML / CSS
Merrell美国官网:美国登山运动鞋品牌
2018/02/07 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
判断单链表中是否存在环
2012/07/16 面试题
蓝颜请假条
2014/04/11 职场文书
任命书格式
2014/06/05 职场文书
三方股份合作协议书
2014/10/13 职场文书
迎新生欢迎词
2015/01/23 职场文书
Python日志模块logging用法
2022/06/05 Python