PHP の cURL を使って FTP を行う。

シェアする

仕事で PHP 使ってるのだけども、ファイルを他のサーバへアップロードしたいのにスクリプトを動かすサーバの PHP は ftpも ssh も扱えなくてちょっと困ってたら cURL だけは使える事が判明したのでやってみたら出来たのでメモ。ぐぐっただけなんですけどね。

参考サイト


<?php

// アップロード
$ch = curl_init();
$localfile = 'hoge';
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, "ftp://username:password@example.com/$localfile");
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec($ch);
$error_no = curl_errno($ch);
curl_close($ch);

// ダウンロード
$ch = curl_init();
$localfile = 'hoge';
$fp = fopen($localfile, 'w');
curl_setopt($ch, CURLOPT_URL, "ftp://username:password@example.com/$localfile");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
$error_no = curl_errno($ch);
curl_close($ch);
fclose($fp);

curl_errno($ch) で返されるエラーコードは libcurl - Error Codes にある。エラー無ければ0が返って来る。
curl_error($ch) であれば文字列で帰ってくる様だ。(ドキュメント見ただけだが)

Sponsored Link

シェアする

フォローする