php使用curl完结ftp文件下载成效,https登入完结代码

本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下

本文实例讲述了php实现curl模拟ftp上传的方法。分享给大家供大家参考。具体如下:

1、curl下载

不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常

<?php
function upload($dir,$src,$dest)
{
  $ch = curl_init();
  $fp = fopen($src, 'r');
  curl_setopt($ch, CURLOPT_URL, 'ftp://user:pwd@host/interpretation/'.$dir .'/'. $dest);
  curl_setopt($ch, CURLOPT_UPLOAD, 1);
  curl_setopt($ch, CURLOPT_INFILE, $fp);
  curl_setopt($ch, CURLOPT_INFILESIZE, filesize($src));
  curl_exec ($ch);
  $error_no = curl_errno($ch);
  curl_close ($ch);
  if ($error_no != 0)
  {
     return 0;
  }else{
   return 1;
  }
} 
upload("images","s.py","aaa.py");
?>
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "ftp://127.0.0.1/downtest.txt"); 
curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_TIMEOUT,300); 
//设置用户名和密码 
curl_setopt($ch, CURLOPT_USERPWD,"yuejide:123456"); 
$outfile = fopen("test.txt","wb"); 
curl_setopt($ch,CURL_FILE,$outfile); 
$rtn = curl_exec($ch); 
fclose($outfile); 
if(!curl_errno($ch)){ 
echo $rtn; 
}else{ 
echo 'curl error'.curl_errno($ch); 
} 
curl_close($ch);
function file_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){
  $curlobj = curl_init();//初始化
  //传入ftp的目标文件,如'ftp://192.168.3.1/test/1.jpg'
  curl_setopt($curlobj,CURLOPT_URL,"ftp://".$ftpIp."/".$path);
  curl_setopt($curlobj,CURLOPT_HEADER,0);//不输出header
  curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,0);
  //time out after 300s 
  curl_setopt($curlobj,CURLOPT_TIMEOUT,2000);//超时时间
  //通过这个函数设置ftp的用户名和密码,没设置就不需要! 
  curl_setopt($curlobj,CURLOPT_USERPWD,$ftpUser.':'.$ftpPwd);

  $outfile = fopen($fileSavePath,'w+'); //保存到本地文件的文件名 
  curl_setopt($curlobj,CURLOPT_FILE,$outfile);

  $rtn = curl_exec($curlobj);
  if(curl_errno($curlobj)){
    writeLog('Curl error: ' . curl_error($curlobj));
  }
  fclose($outfile);
  curl_close($curlobj);
   if($rtn == 1){
    return true;
   }else{
    unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除
    return false;
   }

}

希望本文所述对大家的php程序设计有所帮助。

2、curl上传

测试下载小文件是正常的,但是如果网速很慢,下载大文件时候,会报一个ftp
timeout的错误,目前还在不知道是哪里配置问题,还是什么问题。

您可能感兴趣的文章:

  • PHP使用curl模拟post上传及接收文件的方法
  • PHP基于CURL进行POST数据上传实例
  • php curl 上传文件代码实例
  • php
    curl上传、下载、https登陆实现代码
  • PHP7基于curl实现的上传图片功能
  • 可兼容php5与php7的cURL文件上传功能实例分析
  • PHP5.0~5.6
    各版本兼容性cURL文件上传功能实例分析
  • PHP实现通过CURL上传文件功能示例
  • PHP使用curl请求实现post方式上传图片文件功能示例
$ch = curl_init(); 
$localfile = "ftp01.php"; 
$fp = fopen($localfile,'r'); 
curl_setopt($ch, CURLOPT_URL, "ftp://127.0.0.1/ftp01_upload.php"); 
curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_TIMEOUT,300); 
//设置用户名和密码 
curl_setopt($ch, CURLOPT_USERPWD,"yuejide:123456"); 

curl_setopt($ch, CURLOPT_UPLOAD,1); 
curl_setopt($ch, CURLOPT_INFILE,$fp); 
curl_setopt($ch, CURLOPT_INFILESIZE,filesize($localfile)); 
$rtn = curl_exec($ch); 
fclose($fp); 
if(!curl_errno($ch)){ 
echo "upload successfully"; 
}else{ 
echo 'curl_error'.curl_error($ch); 
} 
curl_close($ch);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

3、curl https登录

您可能感兴趣的文章:

  • php curl 上传文件代码实例
  • PHP使用curl模拟post上传及接收文件的方法
  • PHP基于CURL进行POST数据上传实例
  • php实现curl模拟ftp上传的方法
  • php
    curl上传、下载、https登陆实现代码
  • 可兼容php5与php7的cURL文件上传功能实例分析
  • PHP7基于curl实现的上传图片功能
  • PHP5.0澳门网上正规赌场网址,~5.6
    各版本兼容性cURL文件上传功能实例分析
  • php使用curl下载指定大小的文件实例代码
  • PHP实现通过CURL上传文件功能示例
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "https://www.baidu.com"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
date_default_timezone_set('PRC'); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0); 
$output = curl_exec($ch); 
curl_close($ch); 
echo $output;

以上就是关于php中curl中上传、下载、https登陆的实现方法,需要的朋友可以参考一下。

您可能感兴趣的文章:

  • PHP使用curl模拟post上传及接收文件的方法
  • PHP基于CURL进行POST数据上传实例
  • php curl 上传文件代码实例
  • php实现curl模拟ftp上传的方法
  • PHP7基于curl实现的上传图片功能
  • 可兼容php5与php7的cURL文件上传功能实例分析
  • PHP5.0~5.6
    各版本兼容性cURL文件上传功能实例分析
  • PHP实现通过CURL上传文件功能示例
  • PHP使用curl请求实现post方式上传图片文件功能示例

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注