php使用curl實現(xiàn)ftp文件下載功能
更新時間:2017年05月16日 15:37:34 作者:wodecc_u
這篇文章主要為大家詳細介紹了php使用curl實現(xiàn)ftp文件下載功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了php實現(xiàn)ftp文件下載功能,供大家參考,具體內(nèi)容如下
不知道為什么用正常的ftp_get函數(shù)下載文件速度特別慢,但是用ftp的客戶端下載很快,所以換了curl的下載方式,速度正常
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);//超時時間
//通過這個函數(shù)設置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;
}
}
測試下載小文件是正常的,但是如果網(wǎng)速很慢,下載大文件時候,會報一個ftp timeout的錯誤,目前還在不知道是哪里配置問題,還是什么問題。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
通過緩存數(shù)據(jù)庫結(jié)果提高PHP性能的原理介紹
眾所周知,緩存數(shù)據(jù)庫查詢的結(jié)果可以顯著縮短腳本執(zhí)行時間,并最大限度地減少數(shù)據(jù)庫服務器上的負載。如果要處理的數(shù)據(jù)基本上是靜態(tài)的,則該技術將非常有效。這是因為對遠程數(shù)據(jù)庫的許多數(shù)據(jù)請求最終可以從本地緩存得到滿足,從而不必連接到數(shù)據(jù)庫、執(zhí)行查詢以及獲取結(jié)果2012-09-09
用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼
用PHP獲取Google AJAX Search API 數(shù)據(jù)的代碼2010-03-03

