博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP 下载文件&获取文件内容
阅读量:6839 次
发布时间:2019-06-26

本文共 2251 字,大约阅读时间需要 7 分钟。

/**     * 文件下载到本地目录     * @param $url     * @return string     */    function _download($url) {        $folder = $this->path;        set_time_limit(24 * 60 * 60); // 设置超时时间        $destination_folder = $folder . '\\'; // 文件下载保存目录,默认为当前文件目录        if(!is_dir($destination_folder)) { // 判断目录是否存在            $this->_mkdirs($destination_folder); // 如果没有就建立目录        }        $newfname = $destination_folder . basename($url); // 取得文件的名称\        $file     = fopen($url, "rb"); // 远程下载文件,二进制模式        if($file) { // 如果下载成功            $newf = fopen($newfname, "wb"); // 远在文件文件            if($newf) // 如果文件保存成功                while(!feof($file)) { // 判断附件写入是否完整                    fwrite($newf, fread($file, 1024 * 8), 1024 * 8); // 没有写完就继续                }        }        if($file) {            fclose($file); // 关闭远程文件        }        if($newf) {            fclose($newf); // 关闭本地文件        }        return $newfname;    }    function _mkdirs($path, $mode = "0755") {        if(!is_dir($path)) { // 判断目录是否存在            $this->_mkdirs(dirname($path), $mode); // 循环建立目录            mkdir($path, $mode); // 建立目录        }        return true;    }    /**     * 获取远程文件内容     * @param $url     */    function _fopenUrl($url) {        $file_content = '';        if(function_exists('file_get_contents')) {            $file_content = @file_get_contents($url);        } elseif(ini_get('allow_url_fopen') && ($file = @fopen($url, 'rb'))) {            $i = 0;            while(!feof($file) && $i++ < 1000) {                $file_content .= strtolower(fread($file, 4096));            }            fclose($file);        } elseif(function_exists('curl_init')) {            $curl_handle = curl_init();            curl_setopt($curl_handle, CURLOPT_URL, $url);            curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);            curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);            curl_setopt($curl_handle, CURLOPT_FAILONERROR, 1);            curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Trackback Spam Check'); //引用垃圾邮件检查            $file_content = curl_exec($curl_handle);            curl_close($curl_handle);        } else {            $file_content = '';        }        return $file_content;    }

 

转载于:https://www.cnblogs.com/Julian-Chen/p/7573662.html

你可能感兴趣的文章
java实现遍历树形菜单方法——service层
查看>>
ios appIcon配置
查看>>
首款移动社交购物平台“商宝”上线发布
查看>>
Solr配置与简单Demo[转]
查看>>
Go语言转义字符
查看>>
spring boot的热加载(hotswap)
查看>>
iis重启的几种方法
查看>>
HDU 2196 Computer 树形DP经典题
查看>>
HDU 3466 01背包变形
查看>>
用鼠标滚轮做事件
查看>>
python - paramiko模块 修改logging提示为静默
查看>>
浅谈Linux的内存管理机制
查看>>
Linux中断概述
查看>>
ubuntu 安装RPM软件包
查看>>
controller的frame
查看>>
c++实现队列
查看>>
Linux系统介绍(二)文件系统结构
查看>>
面试题目(1)
查看>>
描述一下Spring框架的作用和优点?
查看>>
二十五:设计模式的总结
查看>>