サンプルは、PHP のオンラインマニュアルの投稿部分にあります。この、「投稿部分」には昔から結構重要な情報が掲載されています。特に、SSL についてはマニュアル本文に無いパラメータがあり、libcurl.a の Cドキュメントからの参照が記述されています。(実際、本文のパラメータだけは SSL にはなりませんでした) 以下は、コマンドプロンプトからの実行を想定していますので、実行は以下のようになります。 php.exe ftp_ssl_download.php また、Windows では、php.ini で extension=php_curl.dll が必要です。実際、SSL が使われたかどうかの確認は、debug.txt を参照して確認できます。 ftp_ssl_download.php
<?php // ************************************ // ユーザとパスワード // ************************************ $username = 'ユーザ'; $password = 'パスワード'; // ************************************ // 対象ファイル // ログインディレクトリからの相対位置 // ************************************ $url = 'ドメイン/www/homepage/download/WinOfSql102.zip'; // ************************************ // URL // ************************************ $ftp_server = "ftp://" . $username . ":" . $password . "@" . $url; // ************************************ // 開始 // ************************************ $ch = curl_init(); // ************************************ // デバッグ用の詳しいメッセージを出力 // ************************************ curl_setopt($ch, CURLOPT_VERBOSE, true); $fpe = fopen("./debug.txt","w"); curl_setopt($ch, CURLOPT_STDERR, $fpe); // ************************************ // 転送用のオプション // ************************************ curl_setopt($ch, CURLOPT_URL, $ftp_server); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // ************************************ // SSL である事の明示 // ※ CURLFTPSSL_ALL と CURLFTPSSL_TRY があります // ************************************ curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL); // ************************************ // ダウンロードされるファイル // ************************************ $fp = fopen("./target.zip","w"); curl_setopt($ch, CURLOPT_FILE, $fp); // ************************************ // 実行 // ************************************ $result = curl_exec($ch); if($result === false) { $result = 'Curl error: ' . curl_error($ch); } // ************************************ // 終了 // ************************************ curl_close($ch); // ************************************ // 後処理 // ************************************ fclose($fp); fclose($fpe); print $result . "\n"; ?> OK
|
【PHP + 通信の最新記事】
- fake sendmail for windows を使って、PHP でごく普通に( mb_send_mail で )メール送信
- PHP の cURL でファイルアップロード
- PHP : WEB でもコマンドラインでも HTTP でファイルをダウンロードする 『fget.php』
- PHP : cURL : Google Photo API の albums.list メソッドを使用して アルバム一覧データを取得する
- PHP + cURL で Google Photo API の アクセストークンを取得する
- PHP の imap 関数で( Windows ローカル )、Yahoo メールのメールをさくらインターネットのメールへコピーする
- PHP の imap 関数( Windows のローカル )で、さくらインターネットのメールボックスの情報を取得する
- PHP : IMAP 関数 でまずメールのヘッダ部分を整理してログに出力する / ※ JSON 出力を追加
- ファイルを一つアップロード : FORM の target を IFRAME にして、PHP に JavaScript を書き出させて元のページにメッセージを表示させる
- Pear の Net_POP3 で、SSL(995) を使って簡単にメール受信
- PHP をコマンドプロンプトから実行して、WEB 上のデータを取得するいくつかの方法
- FormData を使用して $.ajax で送信すると、ファイルのアップロードとメール送信(ファイル添付)を一度に行えます
- ファイルのアップロードからそれを添付してメールを送るテンプレート(スケルトン)
- PHP : mb_send_mail を使用した自家用メール送信 API
- PHP で Windows標準のオブジェクト(CDO.Message)とGMail を使ってメール送信
- PHP : http 経由でファイルのサイズを取得する file_size 関数と ファイルサイズを付加した get_imagesize 関数
- 連想配列のキー部分がプロパティと一致したらセットする( メール送信用クラス )
- PHP : リモートのファイルサイズを取得する
- ローカルの PHP を使ってコマンドプロンプトより簡単にバイナリファイルをアップロードする
- PHP の cURL で ftp サーバーにファイルをアップロードする(SSLなし)