PHP如何下载远程文件到指定目录

news/2024/5/18 22:40:36

PHP用curl可以轻松实现下载远程文件到指定目录:

<?php
class Download
{
   public static function get($url, $file)
   {
      return file_put_contents($file, file_get_contents($url));
   }
   public static function curlGet($url, $file)
   {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_POST, 0); 
      curl_setopt($ch,CURLOPT_URL,$url); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      $file_content = curl_exec($ch);
      curl_close($ch);
      $downloaded_file = fopen($file, 'w');
      fwrite($downloaded_file, $file_content);
      fclose($downloaded_file);
   }
   public static function openGet($url, $file)
   {
      $in = fopen($url, "rb");
      $out = fopen($file, "wb");
      while ($chunk = fread($in,8192))
      {
         fwrite($out, $chunk, 8192);
      }
      fclose($in);
      fclose($out);
   }

   /**
   *
   * 创建目录,支持递归创建目录
   * @param String $dirName 要创建的目录
   * @param int $mode 目录权限
   */
  public static function smkdir($dirName , $mode = 0777) {
     $dirs = explode('/' , str_replace('\\' , '/' , $dirName));
     $dir = '';
     foreach ($dirs as $part) {
        $dir.=$part . '/';
        if ( ! is_dir($dir) && strlen($dir) > 0) {
           if ( ! mkdir($dir , $mode)) {
              return false;
           }
           if ( ! chmod($dir , $mode)) {
              return false;
           }
        }
     }
     return true;
   }
}

http://www.niftyadmin.cn/n/4388918.html

相关文章

高并发分布式系统中生成全局唯一(订单号)Id

1、GUID数据因毫无规律可言造成索引效率低下&#xff0c;影响了系统的性能&#xff0c;那么通过组合的方式&#xff0c;保留GUID的10个字节&#xff0c;用另6个字节表示GUID生成的时间&#xff08;DateTime&#xff09;&#xff0c;这样我们将时间信息与GUID组合起来&#xff0…

全国计算机三级网络工程技术20天指南

这篇文章&#xff0c;可能会有人在之前看到过&#xff0c;不过不影响。因为我也是在前者的基础上&#xff0c;添加了部分新内容的总结&#xff0c;或许不多。但应对三级考试足够了。不用担心你没基础&#xff0c;这篇指南就是给特别懒的你准备的0基础指南。郑重声明&#xff1a…

Android项目集成穿山甲开屏/插屏/横幅广告教程大全

Android项目集成穿山甲开屏/插屏/横幅广告教程大全 开发及项目环境说明 Android Studio 2020.3.1 Patch 4/203.7717.56.2031.7935034 jdk11.0.9 Android Gradle Plugin Version 7.0.4 Gradle Version 7.0.2 compileSdk 31 minSdk 21 targetSdk 31 穿山甲com.pangle.cn:ads-…

php上传文件找不到临时文件夹

错误原因&#xff1a; 一、配置文件没有设置临时文件夹 二、临时文件夹没有或者上级文件夹没有相应的权限 处理方式&#xff1a; 找到PHP配置文件php.ini&#xff0c;找到以下代码 ;upload_tmp_dir 改为&#xff1a; upload_tmp_dir "C:\Windows\Temp" //后面的文…

[Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发

[Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发 启动页界面开发、首次启动时的启动页用户协议与隐私政策弹窗&#xff0c;只要不点击同意每次打开都会显示弹窗&#xff0c;同意后立即跳转到主界面&#xff0c;当下次再进入软件就是两秒后自动跳转到主界面。 Splas…

c语言中自定义bool函数模板

首先&#xff0c;c语言中没有bool函数类型&#xff0c;只有c中有&#xff0c;所以需要自定义&#xff0c;即c中表示bool类型的方法&#xff1a; 1.模板1 typedef int bool; #define false 0 #define true 12.模板2 typedef int bool; enum { false, true };3.模板3 typede…

[安卓逆向]apktool实现APK反编译、重打包、签名

apktool实现APK反编译、重打包、签名 写在前面 apktool 主要用于逆向apk文件。它可以将资源解码&#xff0c;并在修改后可以重新构建它们。 下载apktool APKtool官网&#xff1a;https://ibotpeaches.github.io/Apktool/ APKtool下载&#xff1a;https://bitbucket.org/iB…

《算法笔记》codeup题集——第二章

对于《算法笔记》一书&#xff0c;笔者目前只是写了一个多月&#xff0c;预计会用三个月写完全部题解&#xff0c;从第六章开始会用C题解&#xff0c;而之前的都是纯C题解&#xff0c;主要是笔者认为用C更好。当然你如果有更好的题解&#xff0c;欢迎留言交流&#xff01;&…