文档章节

PHP下载远程图片到本地

雪之丞
 雪之丞
发布于 2014/04/11 11:48
字数 265
阅读 510
收藏 5

<?php header('Content-type:text/html;charset=gbk'); set_time_limit(0); $con = mysql_connect("链接地址","用户名","密码"); if (!$con){ die('Could not connect: ' . mysql_error()); } echo "Connect Sucess"; mysql_select_db("ali_zhibo", $con); mysql_query("set names gbk;"); $result = mysql_query("SELECT distinct id,name,imgpath FROM table1 where imgpath != ''"); while($row = mysql_fetch_array($result)) { $pos = strpos($row['imgpath'], 'http://'); if($pos !== false){ $url = $row['imgpath']; }else{ $url = 'http://xxxxx/'.$row['imgpath']; } $key = $row['id'].'-'.$row['name']; $arr[$key] = $url; } mysql_close($con); echo '总数:'.count($arr); foreach ($arr as $key => $value) { $filename = $key.'.jpg'; getImage($value,'picture6',$filename,0); } var_dump($arr); function getImage($url,$save_dir='',$filename='',$type=0){ if(trim($url)==''){ return array('file_name'=>'','save_path'=>'','error'=>1); } if(trim($save_dir)==''){ $save_dir='./'; } if(trim($filename)==''){//保存文件名 $ext=strrchr($url,'.'); if($ext!='.gif'&&$ext!='.jpg'){ return array('file_name'=>'','save_path'=>'','error'=>3); } $filename=time().$ext; } if(0!==strrpos($save_dir,'/')){ $save_dir.='/'; } //创建保存目录 if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){ return array('file_name'=>'','save_path'=>'','error'=>5); } //获取远程文件所采用的方法 if($type){ $ch=curl_init(); $timeout=5; curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); $img=curl_exec($ch); curl_close($ch); }else{ ob_start(); readfile($url); $img=ob_get_contents(); ob_end_clean(); } //$size=strlen($img); //文件大小 $fp2=@fopen($save_dir.$filename,'a'); fwrite($fp2,$img); fclose($fp2); unset($img,$url); return array('file_name'=>$filename,'save_path'=>$save_dir.$filename,'error'=>0); }

© 著作权归作者所有

雪之丞
粉丝 13
博文 219
码字总数 51065
作品 0
浦东
程序员
私信 提问
最新整合阿里云OSS方法-phpcms

1、为简化整合步骤,使用该方法整合后,默认是所有图片、附件都要上传至OSS,并未在后台设置中添加是否启用OSS的开关。 2、上传的图片或附件,还是会在PHPCMS所在服务器保留一份。主要是基于...

豆花饭烧土豆
2016/11/10
64
0
AjaXplorer 4.1.0 发布,远程文件管理

AjaXplorer 4.1.0 修复了 PHP 5.4.0 带来的问题,增加了一些底层的特性用于提升性能,修复了大量的bug。 AjaXplorer是一款通过本地实现远程端文件管理功能的软件。该软件提供了一个友好的可视...

红薯
2012/04/12
625
1
文件包含漏洞总结

本实验是基于DVWA和sqli-labs的实验环境 实验平台搭建:下载Wamp集成环境,并下载DVWA和sqli-labs和压缩包解压至wampwww的目录下。安装只要注意Wamp环境的数据库名和密码对应即可。 0x01:文...

wt7315
2016/10/18
0
0
Eclipse Git使用

前言 在之前写过的一些基本命令,但是,实际开发工作中,一般不直接使用命令行,而是使用集成开发工具,工具可以极大提高效率,而不用去记忆繁多的命令。团队中无法使用的主要原因我觉得也在...

kenzheng
2016/07/09
338
0
pycharm windows 远程调试 ubuntu虚拟机python 项目

如果要了解详细的PyCharm远程调试的相关信息,请查阅PyCharm 官方文档 。 本文描述如何利用PyCharm的remote interpreter(官方文档中的第一种方法),对Tensorflow进行远程调试。 以下是PyC...

hyhlinux
2016/10/29
101
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
45分钟前
101
6
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部