1. CURL とは何ですか?
cURL は、URL 構文を使用して、HTTP、FTP、TELNET などの多くのプロトコルをサポートしています。最も優れた点は、PHP が cURL ライブラリもサポートしていることです。 PHP の cURL ライブラリを使用すると、Web ページを簡単かつ効果的にスクレイピングできます。スクリプトを実行して、クロールした Web ページを分析するだけで、必要なデータをプログラムで取得できます。リンクから部分データを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。
2. CURL関数ライブラリ。
Curl_close — Curl セッションを閉じる
Curl_copy_handle — Curl 接続リソースのすべてのコンテンツとパラメーターをコピーする
Curl_errno — 現在のセッションのエラー メッセージを含む数値を返す
Curl_error — 現在のセッションのエラー メッセージを含む文字列を返す
curl_exec — Curl セッションを実行する
Curl_getinfo — Curl 接続リソース ハンドルに関する情報を取得する
Curl_init — Curl セッションを初期化する
Curl_multi_add_handle — 別の Curl ハンドル リソースを Curl バッチ セッションに追加する
Curl_multi_ close — バッチを閉じるハンドルリソース— Curl バッチ ハンドル リソース内のハンドル リソースを削除します
curl_multi_select — cURL 拡張子に関連付けられているすべてのソケットを取得し、「選択」できます
curl_setopt_array — 配列の形式で Curl のセッションをセットアップします
curl_setopt —curl のセッションパラメータを設定します
Curl_version —curl 関連のバージョン情報を取得します
curl_init() 関数の関数は、curl セッションを初期化します。curl_init() 関数の唯一のパラメータはオプションであり、URL を表します。住所。
curl_exec() 関数の機能は、curl セッションを実行することです。唯一のパラメータは、curl_init() 関数によって返されるハンドルです。
curl_close() の関数は、curl セッションを閉じることです。唯一のパラメータは、curl_init() 関数によって返されるハンドルです。
3. PHPでCURLリクエストを確立する基本手順
①:初期化
curl_init()
②:属性の設定
curl_setopt() 設定するcURLパラメータの長いリストがあり、さまざまな詳細を指定できます。 URL リクエストの。
③:実行して結果を取得する
curl_exec()
④:ハンドルを解放する
curl_close()
Ⅳ. CURLはGETとPOSTを実装する
①:GETメソッドは
<?php //初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); //显示获得的数据 print_r($data); ?>
を実装する
② :POST
<?php //初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 1); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //设置post数据 $post_data = array( "username" => "coder", "password" => "12345" ); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); //显示获得的数据 print_r($data); ?>
の実装方法
③:取得したデータがjson形式の場合、json_decode関数を使って配列に解釈します。
$output_array = json_decode($output,true);
json_decode($output)を使って解析するとオブジェクト型のデータが得られます。
5. 自分でカプセル化した関数
//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies function curl_request($url,$post='',$cookie='', $returnCookie=0){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_AUTOREFERER, 1); curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); if($post) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post)); } if($cookie) { curl_setopt($curl, CURLOPT_COOKIE, $cookie); } curl_setopt($curl, CURLOPT_HEADER, $returnCookie); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return curl_error($curl); } curl_close($curl); if($returnCookie){ list($header, $body) = explode("\r\n\r\n", $data, 2); preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches); $info['cookie'] = substr($matches[1][0], 1); $info['content'] = $body; return $info; }else{ return $data; } }
添付されたオプションのパラメータの説明: 最初のカテゴリ: 以下のオプションのオプションのパラメータについては、値を bool Type 値に設定する必要があります。 : オプション
任意の値
備考
CURLOPT_AUTOREFERER
Location: に基づいてリダイレクトする場合、ヘッダーの Referer: 情報が自動的に設定されます。
CURLOPT_BINARYTRANSFER
CURLOPT_RETURNTRANSFERが有効な場合、生(Raw)出力を返します。
CURLOPT_COOKIESESSION
有効にすると、curl は 1 つのセッション Cookie のみを渡し、他の Cookie を無視します。デフォルトでは、curl はすべての Cookie をサーバーに返します。セッション Cookie は、サーバー側のセッションが有効かどうかを判断するために使用される Cookie を指します。
CURLOPT_CRLF
有効にすると、Unix の改行文字が復帰文字と改行文字に変換されます。
CURLOPT_DNS_USE_GLOBAL_CACHE
有効にすると、グローバル DNS キャッシュが有効になり、デフォルトで有効になります。
CURLOPT_FAILONERROR
HTTPステータスコードを表示します。デフォルトの動作では、400以下の数値を持つHTTPメッセージを無視します。
CURLOPT_FILETIME
有効にすると、リモートドキュメント内の情報の変更を試みます。結果情報は、curl_getinfo() 関数の CURLINFO_FILETIME オプションを通じて返されます。 curl_getinfo().
CURLOPT_FOLLOWLOCATION
有効にすると、サーバーから返される「Location:」がヘッダーに配置され、再帰的に返される回数を制限するために CURLOPT_MAXREDIRS を使用します。
CURLOPT_FORBID_REUSE
インタラクション完了後に強制的に切断され、再利用できません。
CURLOPT_FRESH_CONNECT
新しい接続を強制的に取得して、キャッシュ内の接続を置き換えます。
CURLOPT_FTP_USE_EPRT
有効にすると、FTPダウンロード時にEPRT(またはLPRT)コマンドを使用します。 FALSE に設定すると、PORT コマンドのみを使用して EPRT と LPRT が無効になります。
CURLOPT_FTP_USE_EPSV
有効にすると、FTP 転送中に PASV モードに戻る前に、まず EPSV コマンドが試行されます。 FALSE に設定すると、EPSV コマンドが無効になります。
CURLOPT_FTPAPPEND
有効にすると、ファイルを上書きするのではなく、ファイルに書き込みを追加します。
CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXTの別名。
CURLOPT_FTPLISTONLY
有効にすると、FTPディレクトリの名前のみがリストされます。
CURLOPT_HEADER
有効にすると、ヘッダファイル情報がデータストリームとして出力されます。
CURLINFO_HEADER_OUT
有効時のトラッキングハンドルのリクエスト文字列。
PHP 5.1.3から利用可能です。 CURLINFO_ プレフィックスは意図的なものです。
CURLOPT_HTTPGET
有効にすると、HTTP メソッドは GET に設定されるため、変更された場合にのみ使用されます。
CURLOPT_HTTPPROXYTUNNEL
有効にするとHTTPプロキシ経由で送信されます。
CURLOPT_MUTE
有効にすると、cURL 関数で変更されたすべてのパラメーターがデフォルト値に復元されます。
CURLOPT_NETRC
接続が確立されたら、~/.netrc ファイルにアクセスして、リモート サイトに接続するためのユーザー名とパスワードの情報を取得します。
CURLOPT_NOBODY
有効にするとHTMLのBODY部分が出力されなくなります。
CURLOPT_NOPROGRESS
有効時にcurl送信のプログレスバーを消す この項目のデフォルト設定は有効です。
注:
PHP はこのオプションを自動的に TRUE に設定します。このオプションはデバッグ目的でのみ変更してください。
CURLOPT_NOSIGNAL
有効にすると、curl によって php に渡されるすべてのシグナルを無視します。この項目は、SAPI マルチスレッド送信中にデフォルトで有効になります。
cURL 7.10で追加されました。
CURLOPT_POST
有効にすると、フォーム送信と同じように、application/x-www-form-urlencoded と入力して通常の POST リクエストが送信されます。
CURLOPT_PUT
有効にすると、HTTP で CURLOPT_INFILE と CURLOPT_INFILESIZE を同時に設定する必要があります。
CURLOPT_RETURTRANSFER
curl_exec()で取得した情報を直接出力するのではなく、ファイルストリームの形式で返します。
CURLOPT_SSL_VERIFYPEER
無効にすると、cURL はサーバーからの検証を終了します。 CURLOPT_CAINFO オプションを使用して証明書を設定します。 CURLOPT_CAPATH オプションを使用して証明書ディレクトリを設定します。 CURLOPT_SSL_VERIFYPEER (デフォルト 2) が有効な場合は、CURLOPT_SSL_VERIFYHOST を TRUE に設定する必要があります。それ以外の場合は、FALSE に設定します。
cURL 7.10以降、デフォルトはTRUEです。 cURL 7.10 以降、バンドルのインストールがデフォルトで行われます。
CURLOPT_TRANSFERTEXT
有効にすると、FTP 転送に ASCII モードを使用します。 LDAP の場合、HTML ではなくプレーン テキスト情報を取得します。 Windows システムでは、システムは STDOUT をバイナリ モードに設定しません。
CURLOPT_UNRESTRICTED_AUTH
ドメイン名が変更された場合でも、CURLOPT_FOLLOWLOCATIONを使用して生成されたヘッダー内の複数の場所にユーザー名とパスワードの情報を継続的に追加します。
CURLOPT_UPLOAD
有効にするとファイルのアップロードを許可します。
CURLOPT_VERBOSE
有効にすると、すべての情報が報告され、STDERR または指定された CURLOPT_STDERR に保存されます。
2番目のカテゴリ:
以下のオプションのオプションパラメータの値は、整数型の値に設定する必要があります:
オプション
オプションの値
備考
CURLOPT_BUFFERSIZE
毎回のサイズキャッシュは取得されたデータから読み取られますが、この値が毎回満たされるという保証はありません。
cURL 7.10で追加されました。
CURLOPT_CLOSEPOLICY
CURLCLOSEPOLICY_LEAST_RECENTLY_USED か CURLCLOSEPOLICY_OLDEST のどちらか、他に 3 つの CURLCLOSEPOLICY_ がありますが、cURL はまだサポートしていません。
CURLOPT_CONNECTTIMEOUT
接続を開始するまでの待ち時間。0に設定すると無期限に待機します。
CURLOPT_CONNECTTIMEOUT_MS
接続試行を待機する時間 (ミリ秒単位)。 0 に設定すると、無限に待機します。
cURL 7.16.2で追加されました。 PHP 5.2.3 以降で利用可能です。
CURLOPT_DNS_CACHE_TIMEOUT
DNS情報をメモリに保存する時間を設定します。デフォルトは120秒です。
CURLOPT_FTPSSLAUTH
FTP 認証方法: CURLFTPAUTH_SSL (最初に SSL を試す)、CURLFTPAUTH_TLS (最初に TLS を試す)、または CURLFTPAUTH_DEFAULT (cURL が自動的に決定する)。
cURL 7.12.2で追加されました。
CURLOPT_HTTP_VERSION
CURL_HTTP_VERSION_NONE (デフォルト値、使用するバージョンを cURL に決定させる)、CURL_HTTP_VERSION_1_0 (HTTP/1.0 の使用を強制)、または CURL_HTTP_VERSION_1_1 (HTTP/1.1 の使用を強制)。
CURLOPT_HTTPAUTH
使用されるHTTP認証方法、オプションの値は次のとおりです: CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_GSSNEGOTIATE、CURLAUTH_NTLM、CURLAUTH_ANY、およびCURLAUTH_ANYSAFE。
| ビットフィールド (or) 演算子を使用して複数の値を区切ることができ、cURL はサーバーに最適な値をサポートするものを選択させます。
CURLAUTH_ANY は CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE と同等です。
CURLAUTH_ANYSAFE は CURLAUTH_DIGEST と同等です |
アップロードされるファイルのサイズ制限をバイト単位で設定します。
CURLOPT_LOW_SPEED_LIMIT
送信速度がCURLOPT_LOW_SPEED_LIMIT(バイト/秒)未満の場合、PHPはCURLOPT_LOW_SPEED_TIMEを使用して、遅すぎるため送信をキャンセルするかどうかを判断します。
CURLOPT_LOW_SPEED_TIME
送信速度がCURLOPT_LOW_SPEED_LIMIT(バイト/秒)未満の場合、PHPはCURLOPT_LOW_SPEED_TIMEを使用して、遅すぎるため送信をキャンセルするかどうかを判断します。
CURLOPT_MAXCONNECTS
許可される接続の最大数を超える場合は、CURLOPT_CLOSEPOLICY を使用してどの接続を停止するかを決定します。
CURLOPT_MAXREDIRS
HTTP リダイレクトの最大数を指定します。このオプションは CURLOPT_FOLLOWLOCATION と一緒に使用されます。
CURLOPT_PORT
接続ポートの指定に使用します。 (オプション)
CURLOPT_PROTOCOLS
ビットフィールドはCURLPROTO_*を参照します。有効にすると、ビットフィールド値によって、libcurl が転送中に使用できるプロトコルが制限されます。これにより、多くのプロトコルをサポートして libcurl をコンパイルできるようになりますが、使用が許可されているプロトコルのサブセットのみの使用に制限されます。デフォルトでは、libcurl はサポートするすべてのプロトコルを使用します。 CURLOPT_REDIR_PROTOCOLS を参照してください。
使用可能なプロトコル オプションは次のとおりです: CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、 、CURLPROTO_ALL
はcURL 7.19.4で追加されました。
CURLOPT_PROXYAUTH
HTTPプロキシ接続の検証方法。 CURLOPT_HTTPAUTH のビットフィールド フラグを使用して、対応するオプションを設定します。プロキシ認証については、現在 CURLAUTH_BASIC と CURLAUTH_NTLM のみがサポートされています。
cURL 7.10.7で追加されました。
CURLOPT_PROXYPORT
プロキシサーバーのポート。ポートは CURLOPT_PROXY で設定することもできます。
CURLOPT_PROXYTYPE
CURLPROXY_HTTP (デフォルト値) または CURLPROXY_SOCKS5 のいずれか。
cURL 7.10で追加されました。
CURLOPT_REDIR_PROTOCOLS
CURLPROTO_*のビットフィールド値。有効にすると、CURLOPT_FOLLOWLOCATION が有効なときにリダイレクトをたどるときにトランスポート スレッドが使用できるプロトコルがビットフィールド値によって制限されます。これにより、リダイレクト時にトランスポート スレッドを許可されたプロトコルのサブセットに制限できるようになります。デフォルトでは、libcurl は FILE と SCP を除くすべてのプロトコルを許可します。これは、サポートされているすべてのプロトコルに無条件で従う 7.19.4 プレリリース バージョンとは少し異なります。プロトコル定数については、CURLOPT_PROTOCOLS を参照してください。
cURL 7.19.4で追加されました。
CURLOPT_RESUME_FROM
送信再開時にバイトオフセットを渡します(ブレークポイントから送信を再開するために使用します)。
CURLOPT_SSL_VERIFYHOST
1 サーバーSSL証明書に共通名があるかどうかを確認します。翻訳者注: 一般名とは、通常、SSL 証明書を申請するドメイン名 (ドメイン) またはサブドメイン (サブドメイン) を入力することを意味します。 2 共通名が存在し、指定されたホスト名と一致することを確認します。
CURLOPT_SSLVERSION
使用するSSLバージョン(2または3)。デフォルトでは、PHP はこの値を自動的に検出しますが、場合によっては手動で設定する必要がある場合があります。
CURLOPT_TIMECONDITION
CURLOPT_TIMEVALUE で指定された一定の時間後に編集された場合、CURL_TIMECOND_IFMODSINCE を使用してページを返します。 CURLOPT_HEADER が true の場合、CURLOPT_HEADER は false になります。次に、CURL_TIMECOND_IFUNMODSINCE を使用します。デフォルト値は CURL_TIMECOND_IFUNMODSINCE です。
CURLOPT_TIMEOUT
cURLの実行を許可する最大秒数を設定します。
CURLOPT_TIMEOUT_MS
cURLの実行を許可する最大ミリ秒数を設定します。
cURL 7.16.2で追加されました。 PHP 5.2.3 以降で利用可能です。
CURLOPT_TIMEVALUE
CURLOPT_TIMECONDITIONで使用されるタイムスタンプを設定します。デフォルトでは、CURL_TIMECOND_IFMODSINCEが使用されます。
3 番目のカテゴリ:
以下のオプションのオプションのパラメーターの値は、文字列型の値に設定する必要があります:
オプション
オプションの値
備考
CURLOPT_CAINFO
それぞれ、1 つまたは複数のファイル名を保持しますサーバーによって検証される証明書。このパラメータは、CURLOPT_SSL_VERIFYPEER とともに使用した場合にのみ意味を持ちます。 .
CURLOPT_CAPATH
複数のCA証明書を保持するディレクトリ。このオプションは CURLOPT_SSL_VERIFYPEER とともに使用されます。
CURLOPT_COOKIE
HTTPリクエストの「Cookie:」部分を設定します。複数の Cookie はセミコロンとそれに続くスペースで区切られます (たとえば、「fruit=apple; color=red」)。
CURLOPT_COOKIEFILE
Cookieデータを含むファイル名。Cookieファイルの形式は、Netscape形式にすることも、純粋なHTTPヘッダー情報のみをファイルに保存することもできます。
CURLOPT_COOKIEJAR
接続完了後のCookie情報を保存するファイル。
CURLOPT_CUSTOMREQUEST
HTTPリクエストとして「GET」や「HEAD」の代わりにカスタムリクエストメッセージを使用します。これは、「DELETE」またはその他の秘密の HTTP リクエストを実行する場合に役立ちます。有効な値は「GET」、「POST」、「CONNECT」などです。つまり、HTTP リクエスト全体をここに入力しないでください。たとえば、「GET /index.html HTTP/1.0rnrn」と入力するのは誤りです。
注:
サーバーがサポートしていることを確認するまで、このカスタムリクエストメソッドを使用しないでください。
CURLOPT_EGDSOCKET
エントロピー収集デーモンソケットを除いて、CURLOPT_RANDOM_FILEと似ています。
CURLOPT_ENCODING
HTTPリクエストヘッダーの「Accept-Encoding:」の値。サポートされているエンコーディングは「identity」、「deflate」、「gzip」です。空の文字列「」の場合、リクエスト ヘッダーはサポートされているすべてのエンコード タイプを送信します。
cURL 7.10で追加されました。
CURLOPT_FTPPORT
この値は、FTPの「POST」コマンドに必要なIPアドレスを取得するために使用されます。 「POST」コマンドは、指定した IP アドレスに接続するようにリモート サーバーに指示します。この文字列には、プレーン テキストの IP アドレス、ホスト名、ネットワーク インターフェイス名 (UNIX の場合)、またはデフォルトの IP アドレスを使用するための単なる「-」を指定できます。
CURLOPT_INTERFACE
ネットワーク送信インターフェースの名前。インターフェース名、IP アドレス、またはホスト名にすることができます。
CURLOPT_KRB4LEVEL
KRB4 (Kerberos 4) セキュリティ レベル。 「clear」、「safe」、「confidential」、「private」のいずれかの値が有効です (最小値から最大値の順)。文字列がこれらのいずれにも一致しない場合は、「private」が使用されます。このオプションを NULL に設定すると、KRB4 セキュリティ認証が無効になります。現在、KRB4 セキュリティ認証は FTP 送信にのみ使用できます。
CURLOPT_POSTFIELDS
すべてのデータは、HTTPプロトコルの「POST」操作を使用して送信されます。ファイルを送信するには、ファイル名の前に @ を付け、フルパスを使用します。このパラメーターは、「para1=val1¶2=val2&...」のような URL コード化された文字列、またはフィールド名をキーとして、フィールド データを値として持つ配列を通じて渡すことができます。 value が配列の場合、Content-Type ヘッダーは multipart/form-data に設定されます。
CURLOPT_PROXY
HTTPプロキシチャネル。
CURLOPT_PROXYUSERPWD
プロキシへの接続に使用される「[ユーザー名]:[パスワード]」の形式の文字列。
CURLOPT_RANDOM_FILE
SSL乱数シードを生成するために使用されるファイル名。
CURLOPT_RANGE
「X-Y」の形式で、X と Y は両方ともバイト単位で測定されるデータの範囲を取得するためのオプションのオプションです。 HTTP トランスポート スレッドは、「X-Y,N-M」などのカンマで区切られたこのような複数の重複もサポートします。
CURLOPT_REFERER
HTTPリクエストヘッダーの「Referer:」の内容。
CURLOPT_SSL_CIPHER_LIST
SSL暗号化アルゴリズムのリスト。たとえば、RC4-SHA と TLSv1 は両方とも利用可能な暗号化リストです。
CURLOPT_SSLCERT
PEM形式の証明書を含むファイル名。
CURLOPT_SSLCERTPASSWD
CURLOPT_SSLCERT証明書を使用するために必要なパスワード。
CURLOPT_SSLCERTTYPE
証明書のタイプ。サポートされている形式は、「PEM」(デフォルト)、「DER」、および「ENG」です。
cURL 7.9.3で追加されました。
CURLOPT_SSLENGINE
CURLOPT_SSLKEYで指定されたSSL秘密鍵に使用される暗号化エンジン変数。
CURLOPT_SSLENGINE_DEFAULT
非対称暗号化操作に使用される変数。
CURLOPT_SSLKEY
SSL秘密鍵を含むファイル名。
CURLOPT_SSLKEYPASSWD
CURLOPT_SSLKEYで指定したSSL秘密鍵のパスワード。
注:
このオプションには機密のパスワード情報が含まれているため、この PHP スクリプトを安全に保管してください。
CURLOPT_SSLKEYTYPE
CURLOPT_SSLKEYで指定した秘密鍵の暗号化タイプ サポートされる鍵タイプは「PEM」(デフォルト値)、「DER」、「ENG」です。
CURLOPT_URL
取得するURLアドレスはcurl_init()関数でも設定できます。
CURLOPT_USERAGENT
HTTPリクエストに「User-Agent:」ヘッダー文字列が含まれます。
CURLOPT_USERPWD
接続に必要なユーザー名とパスワードを「[ユーザー名]:[パスワード]」の形式で渡します。
カテゴリ4
以下のオプションのオプションパラメータについては、値を配列に設定する必要があります:
オプション
オプションの値value
備考
CURLOPT_HTTP200ALIASES
200のレスポンスコード配列、配列ではレスポンスが考慮されます正しい応答、そうでない場合はエラーとみなされます。
cURL 7.10.3で追加されました。
CURLOPT_HTTPHEADER
HTTPヘッダーフィールドの設定に使用される配列。次の形式で配列を使用して設定します: array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE
FTPリクエストが完了した後にサーバー上で実行される一連のFTPコマンド。
CURLOPT_QUOTE
FTP リクエストの前にサーバー上で実行される一連の FTP コマンド。
以下のオプションのオプションパラメータについては、値をストリームリソースに設定する必要があります(たとえば、fopen()を使用):
オプション
オプションの値
CURLOPT_FILE
出力ファイルの場所を設定します。値はリソース タイプで、デフォルトは STDOUT (ブラウザ) です。
CURLOPT_INFILE
ファイルアップロード時に読み込む必要があるファイルアドレス 値はリソースタイプです。
CURLOPT_STDERR
エラー出力アドレスを設定します。値はリソースタイプで、デフォルトのSTDERRを置き換えます。
CURLOPT_WRITEHEADER
ヘッダー部分が書き込まれるファイルアドレスを設定し、値はリソースタイプです。
以下のオプションのオプションのパラメータには、値をコールバック関数名に設定する必要があります:
オプション
オプションの値
CURLOPT_HEADERFUNCTION
コールバック関数を設定します。最初の 1 つは cURL です。リソース ハンドル、2 番目は出力ヘッダー データです。ヘッダー データの出力は、書き込まれたデータのサイズを返すこの関数に依存する必要があります。
CURLOPT_PASSWDFUNCTION
3 つのパラメーターを使用してコールバック関数を設定します。最初のパラメーターは cURL リソース ハンドル、2 番目はパスワード プロンプト、3 番目のパラメーターは許可されるパスワードの最大長です。パスワードの値を返します。
CURLOPT_PROGRESSFUNCTION
3 つのパラメータを使用してコールバック関数を設定します。1 つ目は cURL リソース ハンドル、2 つ目はファイル記述子リソース、3 つ目は長さです。含まれているデータを返します。
CURLOPT_READFUNCTION
2つのパラメータを持つコールバック関数で、最初のパラメータはセッションハンドル、2番目のパラメータはHTTP応答ヘッダー情報の文字列です。この関数を使用すると、返されたデータが自分で処理されます。戻り値はデータ サイズ (バイト単位) です。 0 を返すと EOF 信号を表します。
CURLOPT_WRITEFUNCTION
2つのパラメータを持つコールバック関数で、最初のパラメータはセッションハンドル、2番目のパラメータはHTTP応答ヘッダー情報の文字列です。このコールバック関数を使用すると、応答ヘッダー情報が単独で処理されます。応答ヘッダー情報は文字列全体です。戻り値を、書き込まれた文字列の正確な長さに設定します。エラーが発生すると、トランスポート スレッドは終了します。