最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php抓取网站图片并保存本地服务器实例
时间:2014-06-30 编辑:简简单单 来源:一聚教程网
首先举个例子吧。 代码如下:
代码如下 | 复制代码 |
$text=file_get_contents("http://www.111com.net"); preg_match_all('/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/', $text, $match); //打印出match //下载图片方法 function getImage($url,$filename='',$type=0){ |
案例分析,核心代码如下
代码如下 | 复制代码 |
$text=file_get_contents("http://www.111com.net"); //取得所有img标签,并储存至二维阵列match preg_match_all('/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/', $text, $match); |
这个正则就是直接获取所有图片不管是http或直接是/aa/aa.gif文件都会自动抓保存到地址了,不过这个会有一些问题图片地址未进行补全了,如我们一个 /a/a/a.gif这样我们是找不到图片的,必须是http://www.111com.net /a/a/a.gif 这样才可以下载到了,所以我们有必要进行两个处理方法一个是在原基本上处理
代码如下 | 复制代码 |
//文件保存路径 |
上面的$url参数进行地址补全,如我采集的是http://www.111com.net那么地址自动补全为绝对路径了,另一种办法就是使用修改正则表达式
代码如下 | 复制代码 |
preg_match_all("/(src|SRC)=[\"|'| ]{0,}(http:\/\/(.*)\.(gif|jpg|jpeg|png))/isU",$body,$img_array); |
这样就只获取以http开头的图片文件了哦。
-
下一个: php通过正则提取页面指定内容实例
相关文章
- PHP导出数据超时的优化建议解读 10-31
- PHP之mysql位运算解析 10-31
- Laravel实现登录跳转功能解析 10-31
- php双向队列解读 10-31
- Laravel异常上下文解决教程 10-24
- php数组查询元素位置方法介绍 10-24