加入收藏 | 设为首页 | 会员中心 | 我要投稿 上海站长网 (https://www.021zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php curl下载文件来处理服务器间文件手动同步

发布时间:2022-02-23 15:09:49 所属栏目:PHP教程 来源:互联网
导读:php curl函数是可以实现文件下载功能了,下面这个例子是利用php curl下载文件来处理服务器间文件手动同步了,有兴趣的可进入看看. 有一个需求,情况如下: 两台服务器,一台测试服务器[apache],一台生产服务器[nginx],产品编辑人员在测试服务器使用php upload批
  php curl函数是可以实现文件下载功能了,下面这个例子是利用php curl下载文件来处理服务器间文件手动同步了,有兴趣的可进入看看.
 
  有一个需求,情况如下:
 
  两台服务器,一台测试服务器[apache],一台生产服务器[nginx],产品编辑人员在测试服务器使用php upload批量上传产品,图片,经检查后,可以同步其所上传的产品和图片[打包成zip文件]到生产服务器上,但生产服务器上不接受php upload上传文件的,那么就不能在测试服务器上直接post到正式服务器了.
 
  暂时想到几个方法:
 
  1.使用rsync手动同步过去,但需要配置,并且需要php执行shell命令,但我不想这样.
 
  2.可以使用socket来传送数据,但需要开启端口,我也不想这么做,因如果一时忘记在防火墙开放端口,就无法传送了.
 
  3.测试服务器发送信号到生产服务器,让生产服务器使用php curl从测试服务器下载文件并处理.
 
  通过比较,还是觉得第3种方法比较妥当,直接全程使用php来处理,至少减少一些不必要的维护麻烦.
 
  以下是php curl download的方法代码内容:
 
  function curl_download($testing_server_file, $local_file) {
    $rfp = curl_init($testing_server_file);
    $fp = fopen($local_file, "wb");
  
    curl_setopt($cp, CURLOPT_FILE, $fp);
    curl_setopt($cp, CURLOPT_HEADER, 0);
     //开源软件:Cuoxin.com
    curl_exec($rfp);
  
    $errno = curl_errno($rfp);
    $errmsg = curl_error($rfp);
  
    curl_close($rfp);
    fclose($fp);   
     
    if($errno){
      echo $errmsg;
      exit;
    }
  }

(编辑:上海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!