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 19 PHP
php 数组的创建、调用和更新实现代码
Mar 09 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
php中通过curl检测页面是否被百度收录
Sep 27 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
Sep 24 PHP
php+mysqli使用面向对象方式查询数据库实例
Jan 29 PHP
Zend Studio使用技巧两则
Apr 01 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
php的扩展写法总结
May 14 PHP
PHP中关于php.ini参数优化详解
Feb 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模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
php算法实例分享
2015/07/14 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
golang与PHP输出excel示例
2016/07/22 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
分享我的jquery实现下拉菜单心的
2015/11/29 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
python实现内存监控系统
2021/03/07 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
施工工地安全标语
2014/06/07 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
银行授权委托书样本
2014/10/13 职场文书
小学生毕业评语
2014/12/26 职场文书
单位接收证明格式
2015/06/18 职场文书
酒店宣传语大全
2015/07/13 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
交通事故责任认定书
2015/08/06 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫