`
hawaii162162
  • 浏览: 74865 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

php fopen下载远程文件的函数

PHP 
阅读更多

这几天给客户写的PHP的火车头发布接口,往往会使用到远程附件功能,昨天在小小文的博客那里看到了一段代码,自己拿来在组合一下,加上了自动判断目录且建立目录的功能,然后添加了完整的注释,以后会经常用到哦!

<?php 
function get_file($url, $folder = "./") { 
    set_time_limit (24 * 60 * 60); // 设置超时时间 
    $destination_folder = $folder . '/'; // 文件下载保存目录,默认为当前文件目录 
    if (!is_dir($destination_folder)) { // 判断目录是否存在 
            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 true; 
}  

function mkdirs($path , $mode = "0755") { 
    if (!is_dir($path)) { // 判断目录是否存在 
            mkdirs(dirname($path), $mode); // 循环建立目录   
        mkdir($path, $mode); // 建立目录 
    }  
    return true; 
}  
// 使用示例 
echo get_file('http://www.kalvin.cn/index.php'); 
?> 

 

分享到:
评论

相关推荐

    浅谈php fopen下载远程文件的函数

    // 文件下载保存目录,默认为当前文件目录 if (!is_dir($destination_folder)) { // 判断目录是否存在 mkdirs($destination_folder); // 如果没有就建立目录 } $newfname = $destination_folder . ba

    PHP中通过fopen&#40;&#41;函数访问远程文件示例

    主要介绍了PHP中通过fopen&#40;&#41;函数访问远程文件示例,本文讲解了fopen函数的作用、使用它需要的配置问题、超时问题等内容,并给出了代码实例,需要的朋友可以参考下

    PHP使用get_headers函数判断远程文件是否存在的方法

    以前讲过程关于php判断远程文件是否存在的文章都是利用fopen,sockt,curl函数来实现检查远程文件是否存在,下面我再介绍利用 get_headers来检查远程文件是否存在,感兴趣的朋友可以参考一下。 先来简单了解get_headers...

    php常用文件操作函数汇总

    这里搜集了大量的php中文件操作函数如有文件打开,创建,删除,更变组,读取写文件,文件上传以及打开远程文件,把内容写入文件等实例. 复制代码 代码如下:$fp=fopen&#40;“test.txt”,”r”&#41;; //以只读方式打开文件...

    PHP 获取远程文件内容的函数代码

    /** 获取远程文件内容 @param $url 文件http地址 */ function fopen_url($url) { if (function_exists(‘file_get_contents’)) { $file_content = @file_get_contents&#40;$url&#41;; } elseif (ini_get(‘allow_...

    PHP读取文件并可支持远程文件的代码分享

    php读取文件 案例一 复制代码 代码如下: &lt;?php $file = ‘jb51.net.... 注: 因为 PHP 的整数类型是有符号的,并且大多数平台使用 32 位整数,filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果.对于 2GB

    php打开远程文件的方法和风险及解决方法

    PHP有一个配置选项叫allow_url_fopen,该选项默认是有效的。它允许你指向许多类型的资源,并像本地文件一样处理...尽管严重性在级别上要差一点,但在一个标准文件系统函数中使用了被污染数据的话,会有类似的漏洞产生:

    提升PHP安全:8个必须修改的PHP默认配置

    像fopen的文件处理函数,接受文件的rul参数(例如:fopen&#40;‘http://www.yoursite.com’,’r’&#41;).),这个功能可以很轻松的访问远程资源,然而,这是一个很重要的安全威胁,禁用这个功能来限制file function是...

    PHP判断远程url是否有效的几种方法小结

    使用jq扩展 本文主要介绍PHP解决办法中的第三种,这个方法很少用到,但是感觉又起来还不错, get_headers需要支持 php_openssl支持 查看phpinfo看看是否开启 allow_url_fopen=on 修改php.ini,运行使用远程打开 ...

    关于file_get_contents返回为空或函数不可用的解决方案

    方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件。如果你使用的是虚拟主机可以考虑用curl函数来代替。curl函数的使用示例:复制代码 代码如下:$ch =...

    PHP 文件系统详解

    文件处理函数 1.文件操作. 打开文件: 打开指定的文件时会返回相应的对象,若不存在指定的文件,那麽可能会自动创建这个文件。 resource fopen&#40;string filename,string mode [,int use_include_path][,resource ...

    php中请求url的五种方法总结

    执行的是linux命令行下的命令wget下载远程文件 其中wget命令在本地虚机测试请求http://www.baidu.com时,没有成功,在远程服务器上却可以,考虑时DNS解析的问题,于是直接请求IP成功下载了index.html的文件。 这里只...

    PHP请求远程地址设置超时时间的解决方法

    php请求远程地址设置超时时间,主要讲解file_get_contents、fopen、curl这三个简单常用函数设置超时时间的方法,一般情况下建议使用curl,性能最好,效率也最高。 1、file_get_contents 请求超时设置 $timeout = ...

    require(),include(),require_once()和include_once()区别

    中的URL fopen wrappers 是打开的(默认情况下是打开的),就可以使用URL来指定文件的位置从而实现远程文件的调用。 有一点就是使用require()和include()语句时要特别的注意。那就是在被包含的文件中,处理器是按照...

    php 远程包含文件漏洞分析第1/6页

    一、涉及到的危险函数〔include(),require()和include_once(),require_once()〕 include() && require()语句:包括并运行指定文件。 这两种结构除了在如何处理失败之外完全一样。include() 产生一个警告而 require()...

    深入file_get_contents函数抓取内容失败的原因分析

    用file_get_contents来抓取页面内容不成功,可能是因为有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容。那就是可以使用另外一个函数curl。下面是...

    深入file_get_contents与curl函数的详解

    有些主机服务商把php的allow_url_fopen选项是关闭了,就是没法直接使用file_get_contents来获取远程web页面的内容。那就是可以使用另外一个函数curl。下面是file_get_contents和curl两个函数同样功能的不同写法file_...

Global site tag (gtag.js) - Google Analytics