php curl函數(shù)是可以實現(xiàn)文件下載功能了,下面這個例子是利用php curl下載文件來處理服務器間文件手動同步了,有興趣的可進入看看.
有一個需求,情況如下:
兩臺服務器,一臺測試服務器[apache],一臺生產服務器[nginx],產品編輯人員在測試服務器使用php upload批量上傳產品,圖片,經檢查后,可以同步其所上傳的產品和圖片[打包成zip文件]到生產服務器上,但生產服務器上不接受php upload上傳文件的,那么就不能在測試服務器上直接post到正式服務器了.
暫時想到幾個方法:
1.使用rsync手動同步過去,但需要配置,并且需要php執(zhí)行shell命令,但我不想這樣.
2.可以使用socket來傳送數(shù)據(jù),但需要開啟端口,我也不想這么做,因如果一時忘記在防火墻開放端口,就無法傳送了.
3.測試服務器發(fā)送信號到生產服務器,讓生產服務器使用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);
- //開源軟件:Vevb.com
- curl_exec($rfp);
- $errno = curl_errno($rfp);
- $errmsg = curl_error($rfp);
- curl_close($rfp);
- fclose($fp);
- if($errno){
- echo $errmsg;
- exit;
- }
- }
新聞熱點
疑難解答