mysql - php从远程服务器XXX.zip下下载一个.zip,然后解压.zip文件,拿到.csv文件,最后导入数据库?
PHP中文网
PHP中文网 2017-04-11 09:49:05
[PHP讨论组]
<?php 
function downfile($fileurl)
{
 ob_start(); 
 $filename=$fileurl;
//  $date=date("Ymd-H:i:m");
 $date=date("Ymd");
 echo $date;
//  header( "Content-type:  application/octet-stream "); 
 header( "Content-type:application/zip");
 header( "Accept-Ranges:  bytes "); 
 header( "Content-Disposition:  attachment;  filename= {$date}.csv"); 
 $size=readfile($filename); 
  header( "Accept-Length: " .$size);
}
$url="http:XXX.zip";
 downfile($url);
?> 
PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
伊谢尔伦

不知所谓, 看不明白要表达什么问题

首先, readfile 是输出文件内容到缓存区的, 不知你从哪找的代码, 肯定不能用于你的需求.

  1. 下载远程文件, 请百度php file_get_contents()方法, (也可以用curl, 相对稳定但比较复杂,前者够你用了).

  2. 至于解压文件, 你需要安装php zip扩展, 并了解相关方法 zip_*(), 提取cvs文件.

  3. CVS只是个数据文件, 你需要把它解析出来一个二维数组的数据, 拼接sql插入到数据库, 这个百度倒是能有不少结果的.

  4. 自己了解以上东西, 并自己码代码吧, 网上可没现成的代码给你用, 别人也没太多耐心帮你写, 因为你的需求拆分太多.

迷茫

php也可以解压文件,不过能用别的语言来做这个事情更好了,比如python,下载解压导入都没有问题

黄舟

二进制文件导入数据库?

$fp = fopen($url, 'rb');//读取文件
header( "Content-Disposition:  attachment;  filename= {$date}.zip");//这个改为下载的文件名
fpassthru($fp);         // 输出文件内容
//拿到这个文件下载后的地址。
$resource = zip_open($filename);
/**读csv文件,使用phpExcel http://www.codeplex.com/PHPExcel
insert 到数据库
**/
zip_close($resource); 

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号