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 相关文章推荐
很实用的一个完整email发送程序
Oct 09 PHP
使用Xdebug调试和优化PHP程序之[1]
Apr 17 PHP
php SQL Injection with MySQL
Feb 27 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
ThinkPHP模板判断输出Empty标签用法详解
Jun 30 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
PHP单态模式简单用法示例
Nov 16 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
Apr 17 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
PHP const定义常量及global定义全局常量实例解析
May 28 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中防止SQL注入实现代码
2011/02/19 PHP
php代码书写习惯优化小结
2013/06/20 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
python学习之编写查询ip程序
2016/02/27 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
python中plot实现即时数据动态显示方法
2018/06/22 Python
Python数据可视化之画图
2019/01/15 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Python中url标签使用知识点总结
2020/01/16 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
土木工程师岗位职责
2013/11/24 职场文书
迟到检讨书400字
2014/01/13 职场文书
司法局群众路线教育实践活动整改措施思想汇报
2014/10/13 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书