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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
php之Memcache学习笔记
Jun 17 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
ThinkPHP使用Smarty第三方插件方法小结
Mar 19 PHP
PHP安全下载文件的方法
Apr 07 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
php 可变函数使用小结
Jun 12 PHP
php中的钩子理解及应用实例分析
Aug 30 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 PHP
php中配置文件保存修改操作 如config.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
PHP4引用文件语句的对比
2006/10/09 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
php strftime函数的详细用法
2018/06/21 PHP
jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据
2011/02/18 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
Angular 数据请求的实现方法
2018/05/07 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
原生js实现购物车
2020/09/23 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
python制作最美应用的爬虫
2015/10/28 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python 自定义装饰器实例详解
2019/07/20 Python
在django中自定义字段Field详解
2019/12/03 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
数组越界问题
2015/10/21 面试题
简短的公司员工自我评价分享
2013/11/13 职场文书
维修工先进事迹
2014/05/29 职场文书
中学推普周活动总结
2015/05/07 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis