MEMO REC

雑記帳兼php、mysql、html、css、javascript等の備忘録です。

【cURL】cURL関数(php)でsshやftpなどを使用する方法

f:id:gontora:20160112141717j:plain
phpcURL関数において、
ftpsshを使ってファイルダウンロードやアップロードしたい時があると思います。

ファイルをアップロード、ダウンロードする方法を記しておきます。

ファイルをftpでアップロードする方法

$conn = curl_init();
$filename = "testfile";  //ファイル名
$username = "username";  //ユーザー名
$password = "password";  //パスワード
$fp = fopen($filename, 'r');
$url = "ftp://".$username.":".$password."@hogefugapiyo.com/".$filename;
curl_setopt($conn, CURLOPT_URL, $url);
curl_setopt($conn, CURLOPT_UPLOAD, 1);
curl_setopt($conn, CURLOPT_INFILE, $fp);
curl_setopt($conn, CURLOPT_INFILESIZE, filesize($filename));
$response = curl_exec($conn);
curl_close($conn);

ファイルをダウンロードする方法

$conn = curl_init();
$filename = "testfile";  //ファイル名
$username = "username";  //ユーザー名
$password = "password";  //パスワード
$fp = fopen($filename, 'r');
$url = "ftp://".$username.":".$password."@hogefugapiyo.com/".$filename;
curl_setopt($conn, CURLOPT_URL, $url);
curl_setopt($conn, CURLOPT_FILE, $fp);
curl_setopt($conn, CURLOPT_HEADER, 0);
$response = curl_exec($conn);
curl_close($conn);

オプションについて

オプション名 説明
CURLOPT_URL リクエストするURL
CURLOPT_UPLOAD データのアップロードを有効にする
CURLOPT_INFILE アップロード時に転送内容を読み込むファイル
CURLOPT_INFILESIZE ファイルをリモートサイトにアップロードする際のファイルサイズ
CURLOPT_FILE 転送内容が書き込まれるファイル
CURLOPT_HEADER TRUE を設定すると、ヘッダの内容も出力します

f:id:gontora:20160112141717j:plain