以下代码都是本人在工作中遇到的问题,并完成的具体代码和注释,不多说,直接上代码:

<?php
     //组织链接
     $dataurl = "http://118.194.236.54:888/kw/";
     $date = date("Y-m-d",strtotime("-1 day"));
     $fileName = $date . ".tar.gz";
     $dataurl = $dataurl . $fileName;      //下载昨天数据,如果curl方法可用,默认使用curl方法!
     function httpcopy($url, $file="", $timeout=60)
     {
         $file = empty($file) ? pathinfo($url, PATHINFO_BASENAME) : $file;
         $dir = pathinfo($file, PATHINFO_DIRNAME);
         !is_dir($dir) && @mkdir($dir, 0755, true);
         $url = str_replace(" ", "%20", $url);          if(function_exists('curl_init')) {
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_URL, $url);
             curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
             $temp = curl_exec($ch);
             if(@file_put_contents($file, $temp) && !curl_error($ch)) {
                 return $file;
             } else {
                 return false;
             }
         } else {
             $opts = array(
                 "http" => array(
                 "method" => "GET",
                 "header" => "",
                 "timeout" => $timeout)
             );
             $context = stream_context_create($opts);
             if(@copy($url, $file, $context)) {
                 return $file;
             } else {
                 return false;
             }
         }
     }      if(!httpcopy($dataurl, "./" . $fileName, 60)) {
          echo "下载出错!";
     }      //解压tar.gz文件
     $phar = new PharData($fileName);
     $phar->extractTo('./', null, true);      //读取解压后的文件数据
     $handle = fopen($date . ".txt", "r");
    
     $text = '';
     while (!feof($handle)) {
         $buffer = fgets($handle);
         $res = explode("\t", $buffer);
         $text .= $res[1] . ' ';
     }
     fclose($handle);      //写入关键字文件
     $name = $date . "keyword.txt";
     $fp = fopen($name, "w+");
     fwrite($fp, $text);
     fclose($fp);
    
?>

php下载文件,解压文件,读取并写入新文件的更多相关文章

  1. PCB 无需解压,直接读取Genesis TGZ指定文件 实现方法

    通过无需解压读取ZIP压缩包的方法,寻思者如何可以不解压直接读Genesis TGZ文件内容, 通过查找资料,原来可以通过:SharpCompress.dll工具实现此需求,此工具如此NB 一.Sha ...

  2. PCB 无需解压,直接读取Zip压缩包指定文件 实现方法

    最近有一项需求,将电测试点数后台批量写入到工程系统流程指示中,而电测试文件存在压缩包中,压缩包存在公共网络盘 示例图: 一.采用原始方法(4步完成): 第1步:.网络盘ZIP拷到本地, 第2步:解压Z ...

  3. ZIP文件解压

    public class DZip { /// <summary> /// 压缩为ZIP文件 /// </summary> public void Zip(string dir ...

  4. java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决

    情景描述: 1.将本地数据备份成zip文件: 2.将备份的zip文件通过sftp上传到文件服务器: 3.将文件服务器上的zip文件下载到运行服务器: 4.将下载的zip文件解压到本地(文件大小超过50 ...

  5. Linux中下载、解压、安装文件

    一.将解压包发送到linux服务器上: 1.在windos上下载好压缩包文件后,通过winscp等SFTP客户端传送给linux 2.在linux中通过wget命令直接下载 #wget [选项] [下 ...

  6. Linux中下载、解压、安装文件(转)

    原文地址:http://www.cnblogs.com/red-code/p/5539399.html 一.将解压包发送到linux服务器上: 1.在windos上下载好压缩包文件后,通过winscp ...

  7. 将.war文件解压到指定目录

    jar命令无法将.jar解压到指定目录,因为-C参数只在创建或更新包的时候可用 要将.jar文件解压到指定目录可以用unzip命令 unzip命令在windows下自带就有,不用另外下载安装 下面是将 ...

  8. Java解压上传zip或rar文件,并解压遍历文件中的html的路径

    1.本文只提供了一个功能的代码 public String addFreeMarker() throws Exception { HttpSession session = request.getSe ...

  9. shell复习---文件解压命令

    需要自己部署服务端,故在申请了空间之后,需要自己安装linux自己,自己安装Apache等,所以下载的压缩文件需要运行.网上找了一些解压命令不对,特别试了下面的方法有效,特别记录一下: 用ssh 登陆 ...

随机推荐

  1. LINE 不被封锁的技巧

    什么是封锁? 谈LINE 被封锁之前,我们先来了解一下什么是封锁.LINE 的封锁分为「好友封锁你」与「官方封锁你」二种,有些人将官方封锁讲成「停权」,其实LINE 的停权并不是你的帐号全被封锁,被封 ...

  2. pytesseract 报windows err no2的错误

    需要把源安装文件pytesseract.py的修改为,tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe' 原始是t ...

  3. js实现webSocket客户端

    var ws = new WebSocket("ws://localhost:8080/msg"); //readyState属性返回实例对象的当前状态,共有四种. //CONNE ...

  4. actor mysql 持久化之 specified actor

    持久化到mysql,要求一次操作涉及到的多次读写的事务性.使用的 library 是 postgresql-async, akka 版本是 2.11. 1. 实现 per-user 逻辑,简单来讲,就 ...

  5. Wcf使用Net.Tcp做回调操作

    契约: [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples", SessionMode = Se ...

  6. css背景图等比例缩放,盒子随背景图等比例缩放

    很多时候我们给网站了一个大banner,但是随着屏幕的变化,背景会变形,我们知道background-size可以实现背景图等比例缩放,但是,我们想让下面的盒子根据缩放后背景图的高度,也能自动向上挤. ...

  7. [Python]小百合十大爬虫

    国庆几天在家看了几篇关于使用Python来编写网络爬虫的博客,想来自己断断续续学习Python也有几个月了,但一个像样的程序都没有写过,编程能力并没有得到提高,愧对自己花费的时间.很多时候虽然知道什么 ...

  8. Selenium 前进和后退

    我们平常使用浏览器时都有前进和后退功能, Selenium 也可以完成这个操作,它使用 back() 方法后退,使用 forward() 方法前进 from selenium import webdr ...

  9. nsi脚本中执行.bat文件要隐藏dos窗口问题

    问题原因:工作中,在一个nsi的安装脚本文件中需要安装虚拟摄像头驱动,安装驱动脚本是.bat文件.使用nsi的execwait函数执行.bat文件时会显示dos窗口.但是领导要求不能显示dos窗口. ...

  10. PL/SQL Developer的安装以及与64位Oracle Database进行连接

    本文转载自budongs 一.下载 官网安装包(1106版本)下载链接: plsqldev1106.exe 官网中文语言包(110版本) 下载链接: chinese.exe [中文语言包的使用方法为: ...