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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
php.ini中的request_order推荐设置
May 10 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
php自动载入类用法实例分析
Jun 24 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 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中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
PHP多个文件上传到服务器实例
2014/10/29 PHP
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
js模块加载方式浅析
2017/08/12 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
python发布模块的步骤分享
2014/02/21 Python
python调用windows api锁定计算机示例
2014/04/17 Python
从零学Python之入门(三)序列
2014/05/25 Python
Python中的高级函数map/reduce使用实例
2015/04/13 Python
使用Python生成XML的方法实例
2017/03/21 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
python命令行参数用法实例分析
2019/06/25 Python
怎么快速自学python
2020/06/22 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
h5网页水印SDK的实现代码示例
2019/02/19 HTML / CSS
计算机网络毕业生自荐信
2013/10/01 职场文书
微信搭讪开场白
2015/05/28 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
Golang 结构体数据集合
2022/04/22 Golang