(PHP 4 >= 4.0.2, PHP 5)
curl_setopt — cURL 転送用オプションを設定する
ch
curl_init() が返す cURL ハンドル。
option
設定したい CURLOPT_XXX オプション。
value
option
に設定する値。
value
には、
option
の以下の値に関して
bool 値を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_AUTOREFERER |
TRUE を設定すると、Location: によるリダイレクトを
たどる際には自動的に Referer: フィールドをリクエストに
追加します。
|
|
CURLOPT_BINARYTRANSFER |
TRUE を設定すると、CURLOPT_RETURNTRANSFER
が使用された場合に出力結果を何も加工せずに返します。
|
PHP 5.1.3 以降では、このオプションは何の効果もありません。
CURLOPT_RETURNTRANSFER を使ったときには
常に出力をそのまま返すようになりました。
|
CURLOPT_COOKIESESSION |
TRUE を設定すると、クッキーの "セッション" を新しく開始します。
以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、
libcurl に指示します。デフォルトでは、それがセッションクッキーであるか
どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。
セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ
有効であるクッキーのことです。
|
|
CURLOPT_CERTINFO |
TRUE を設定すると、セキュアな転送時に SSL 証明書の情報を
STDERR に出力します。
|
cURL 7.19.1 で追加されました。
PHP 5.3.2 以降で使用可能です。これを使うには、CURLOPT_VERBOSE
を on にしておかなければなりません。
|
CURLOPT_CRLF |
TRUE を設定すると、転送時に Unix 形式の改行を CRLF 形式に変換します。
|
|
CURLOPT_DNS_USE_GLOBAL_CACHE |
TRUE を設定すると、グローバル DNS キャッシュを利用します。
このオプションはスレッドセーフではありません。また、デフォルトで
有効になっています。
|
|
CURLOPT_FAILONERROR |
TRUE を設定すると、HTTP で 400 以上のコードが返ってきた際に
処理失敗と判断し、何もしません。デフォルトでは、コードの値を無視して
ページの内容を取得します。
|
|
CURLOPT_FILETIME |
TRUE を設定すると、ドキュメントの更新日時を取得しようと試みます。
この値を取得するには、 curl_getinfo() で
CURLINFO_FILETIME オプションを用います。
|
|
CURLOPT_FOLLOWLOCATION |
TRUE を設定すると、サーバーが HTTP ヘッダの一部として送ってくる
"Location: " ヘッダの内容をたどります
(これは再帰的に行われます。CURLOPT_MAXREDIRS
が指定されていない限り、送ってくる "Location: "
ヘッダの内容をずっとたどり続けることに注意しましょう)。
|
|
CURLOPT_FORBID_REUSE |
TRUE を設定すると、処理が終了した際に明示的に接続を切断します。
接続を再利用しません。
|
|
CURLOPT_FRESH_CONNECT |
TRUE を設定すると、キャッシュされている接続を利用せずに
新しい接続を確立します。
|
|
CURLOPT_FTP_USE_EPRT |
TRUE を設定すると、FTP のダウンロードに EPRT(および LPRT)
を利用します。FALSE の場合は EPRT・LPRT を無効にして PORT
を利用します。
|
|
CURLOPT_FTP_USE_EPSV |
TRUE を設定すると、FTP 転送の際にまず EPSV コマンドの利用を
試みます。失敗した場合は PASV を利用します。FALSE を設定すると、
EPSV を無効にします。
|
|
CURLOPT_FTP_CREATE_MISSING_DIRS |
TRUE を設定すると、FTP の操作中にパスが存在しなかったときに
ディレクトリを作成します。
|
|
CURLOPT_FTPAPPEND |
TRUE を設定すると、リモートファイルを上書きせずに追記します。
|
|
CURLOPT_FTPASCII |
CURLOPT_TRANSFERTEXT のエイリアスです。
|
|
CURLOPT_FTPLISTONLY |
TRUE を設定すると、FTP でディレクトリ名のみ表示します。
|
|
CURLOPT_HEADER |
TRUE を設定すると、ヘッダの内容も出力します。
|
|
CURLINFO_HEADER_OUT |
TRUE を設定すると、リクエスト文字列を追跡します。
|
PHP 5.1.3 以降で使用可能です。プレフィックスが CURLINFO_
となっているのは意図的なものです。
|
CURLOPT_HTTPGET |
TRUE を設定すると、HTTP のリクエスト形式を GET に戻します。
GET はデフォルト設定なので、リクエスト形式が変更されている
場合にのみ必要となります。
|
|
CURLOPT_HTTPPROXYTUNNEL |
TRUE にすると、指定された HTTP プロキシを介してトンネルします。
|
|
CURLOPT_MUTE |
TRUE を設定すると、cURL 関数に関連する出力を完全に抑えます。
|
cURL 7.15.5 で削除されました (かわりに CURLOPT_RETURNTRANSFER が使えます) |
CURLOPT_NETRC |
TRUE を設定すると、リモートサイトと接続を確立する際に用いる
ユーザー名やパスワードを、~/.netrc から取得します。
|
|
CURLOPT_NOBODY |
TRUE を設定すると、出力から本文を削除します。
リクエストメソッドは HEAD となります。これを FALSE
に変更してもリクエストメソッドは GET には変わりません。
|
|
CURLOPT_NOPROGRESS |
TRUE を設定すると、cURL 転送の進捗状況表示を無効にします。
|
|
CURLOPT_NOSIGNAL |
TRUE を設定すると、cURL 関数が PHP プロセスに送信するシグナルを
無視します。マルチスレッド SAPI ではデフォルトで on となっており、
そのためタイムアウトオプションもまだ利用されています。
|
cURL 7.10 で追加されました。 |
CURLOPT_POST |
TRUE を設定すると、HTTP POST を行います。POST は、
application/x-www-form-urlencoded 形式で
行われます。これは一般的な HTML のフォームと同じ形式です。
|
|
CURLOPT_PUT |
TRUE を設定すると、HTTP PUT を行います。PUT するファイルは
CURLOPT_INFILE および
CURLOPT_INFILESIZE
で指定されている必要があります。
|
|
CURLOPT_RETURNTRANSFER |
TRUE を設定すると、 curl_exec() の返り値を
文字列で返します。通常はデータを直接出力します。
|
|
CURLOPT_SSL_VERIFYPEER |
FALSE を設定すると、cURL はサーバー証明書の検証を行いません。
別の証明書を CURLOPT_CAINFO オプションで
指定するか、CURLOPT_CAPATH オプションで
証明ディレクトリを指定します。
|
cURL 7.10 以降、デフォルト値は TRUE です。また、
cURL 7.10 以降、デフォルトでインストールされています。
|
CURLOPT_TRANSFERTEXT |
TRUE を設定すると、FTP 転送を ASCII モードで行います。
LDAP の場合は、データを HTML ではなくプレーンテキストで取得します。
Windows システムでは STDOUT
に対してバイナリモードを設定しないでください。
|
|
CURLOPT_UNRESTRICTED_AUTH |
TRUE を設定すると、(CURLOPT_FOLLOWLOCATION
を利用して)場所をたどっていく際にユーザー名とパスワードを送信し続けます。
これは、たとえホスト名が変わっても続けられます。
|
|
CURLOPT_UPLOAD |
TRUE を設定すると、アップロードの準備をします。
|
|
CURLOPT_VERBOSE |
TRUE を設定すると、詳細な情報を出力します。情報は
STDERR か、または
CURLOPT_STDERR
で指定したファイルに出力されます。
|
value
には、
option
の以下の値に関して
整数値を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_BUFFERSIZE |
1 回の読み込みに用いるバッファのサイズ。しかしながら、必ず このバッファいっぱいまで読み込まれることを保証するものではありません。 | cURL 7.10 で追加されました。 |
CURLOPT_CLOSEPOLICY |
CURLCLOSEPOLICY_LEAST_RECENTLY_USED あるいは
CURLCLOSEPOLICY_OLDEST です。
他にも 3 つの CURLCLOSEPOLICY_ 定数が存在しますが、
cURL はそれらをまだサポートしていません。
|
|
CURLOPT_CONNECTTIMEOUT |
接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。 | |
CURLOPT_CONNECTTIMEOUT_MS |
接続の試行を待ち続けるミリ秒数。0 は永遠に待ち続けることを意味します。 システムの標準の名前解決を使うように libcurl をビルドしている場合は、 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 | cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 |
CURLOPT_DNS_CACHE_TIMEOUT |
DNS エントリをメモリ内に保持し続ける秒数。デフォルトでは 120(2 分)に設定されています。 | |
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 認証方法。以下の中から選びます。
2 つ以上の方法を組み合わせるには、ビット演算子 |(or) を使用します。このような場合、cURL はサーバーがサポートしている方法を 問い合わせたうえで最適な方法を選択します。
|
|
CURLOPT_INFILESIZE |
ファイルをリモートサイトにアップロードする際のファイルサイズ。
このオプションを指定しても、libcurl がそれ以上のデータを送信するのは止められないことに注意しましょう。
実際に何が送信されるのかは
CURLOPT_READFUNCTION に依存します。
|
|
CURLOPT_LOW_SPEED_LIMIT |
1 秒あたりのバイト数で、転送速度がこれより遅い期間が
CURLOPT_LOW_SPEED_TIME 秒以上続いた場合に
PHP は転送を終了します。
|
|
CURLOPT_LOW_SPEED_TIME |
転送速度が CURLOPT_LOW_SPEED_LIMIT
より遅い期間がどれだけ続いた場合に転送を異常終了させるかを、
秒単位で指定します。
|
|
CURLOPT_MAXCONNECTS |
許可される持続的接続の最大数。もしこの値に達した場合、
どの接続を閉じるのかを CURLOPT_CLOSEPOLICY
によって決定します。
|
|
CURLOPT_MAXREDIRS |
HTTP のリダイレクト先を追いかける最大値。
CURLOPT_FOLLOWLOCATION とあわせて使用します。
|
|
CURLOPT_PORT |
接続先のポート番号。 | |
CURLOPT_PROTOCOLS |
使用できるプロトコルオプションは次のとおりです。
|
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 がどのプロトコルを使用するのかに制約を加えます。これによって、
リダイレクト時に特定の転送プロトコルのみを使用するように制限することができます。
デフォルトでは、libcurl がサポートしているすべてのプロトコルのうち
FILE と SCP 以外のすべての使用を許可します。この挙動は 7.19.4
より前のバージョンとは異なります。7.19.4 より前のバージョンでは、
サポートするすべてのプロトコルを無条件に許可していました。
プロトコル定数の値は CURLOPT_PROTOCOLS を参照ください。
|
cURL 7.19.4 で追加されました。 |
CURLOPT_RESUME_FROM |
転送を途中から再開する場合のバイトオフセット。 | |
CURLOPT_SSL_VERIFYHOST |
1 は SSL ピア証明書に一般名が存在するかどうかを調べます。 2 はそれに加え、その名前がホスト名と一致することを検証します。 本番環境では、このオプションの値は常に 2 (デフォルト値) にしておかなければなりません。 | 値 1 は、cURL 7.28.1 以降では使えなくなりました。 |
CURLOPT_SSLVERSION |
使用する SSL のバージョン(2 あるいは 3)。デフォルトでは PHP が自動的に判断しますが、これを手動で設定する必要がある場合もあります。 | |
CURLOPT_TIMECONDITION |
CURLOPT_TIMEVALUE の扱いを決定します。
CURLOPT_TIMEVALUE で指定した時刻以降に
変更されたページのみを返す場合は
CURL_TIMECOND_IFMODSINCE を使用します。
CURLOPT_HEADER が TRUE だと仮定すると、
ページが変更されていない場合は
"304 Not Modified" ヘッダが返されます。
CURL_TIMECOND_IFUNMODSINCE は反対の意味です。
デフォルトは CURL_TIMECOND_IFMODSINCE
です。
|
|
CURLOPT_TIMEOUT |
cURL 関数の実行にかけられる時間の最大値。 | |
CURLOPT_TIMEOUT_MS |
cURL 関数の実行にかけられる最大のミリ秒数。 システムの標準の名前解決を使うように libcurl をビルドしている場合は、 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 | cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 |
CURLOPT_TIMEVALUE |
1970 年 1 月 1 日からの経過秒数。この値は
CURLOPT_TIMECONDITION で使用されます。デフォルトでは
CURL_TIMECOND_IFMODSINCE が設定されます。
|
|
CURLOPT_MAX_RECV_SPEED_LARGE |
ダウンロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 デフォルトは無制限です。 | cURL 7.15.5 で追加されました。PHP 5.4.0 以降で使用可能です。 |
CURLOPT_MAX_SEND_SPEED_LARGE |
アップロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 デフォルトは無制限です。 | cURL 7.15.5 で追加されました。PHP 5.4.0 以降で使用可能です。 |
CURLOPT_SSH_AUTH_TYPES |
CURLSSH_AUTH_PUBLICKEY ,
CURLSSH_AUTH_PASSWORD ,
CURLSSH_AUTH_HOST ,
CURLSSH_AUTH_KEYBOARD
のビットマスク。
CURLSSH_AUTH_ANY にすると libcurl がいずれかひとつを選択します。
|
cURL 7.16.1 で追加されました。 |
value
は、
option
パラメータの
以下の値に関して文字列である必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_CAINFO |
接続先を検証するための証明書を保持するファイル名。
これは CURLOPT_SSL_VERIFYPEER を使用する場合に
のみ意味を持ちます。
|
絶対パスで指定しなければなりません。 |
CURLOPT_CAPATH |
複数の証明書ファイルを保持するディレクトリ。このオプションは
CURLOPT_SSL_VERIFYPEER とともに使用します。
|
|
CURLOPT_COOKIE |
HTTP リクエストにおける "Cookie: " ヘッダの内容。 クッキーが複数ある場合は、セミコロンとスペースで区切られる (例 "fruit=apple; colour=red") ことに注意しましょう。 | |
CURLOPT_COOKIEFILE |
クッキーのデータを保持するファイルの名前。クッキーファイルは、 Netscape フォーマットあるいは HTTP ヘッダを単純にファイルにダンプしたものが使用可能です。 名前が空文字列の場合はクッキーを読み込みませんが、クッキーの処理は有効なままです。 | |
CURLOPT_COOKIEJAR |
ハンドルを閉じる際 (curl_close のコール後など) に、 すべての内部クッキーを保存するファイルの名前。 | |
CURLOPT_CUSTOMREQUEST |
HTTP リクエストで
"GET" あるいは "HEAD" 以外に
使用するカスタムメソッド。これが有用なのは、"DELETE"
やその他のあまり知られていない HTTP リクエストを実行する場合です。
使用可能な値は "GET"、
"POST"、"CONNECT" などです。
HTTP リクエストの内容をすべて指定するわけではありません。つまり、
"GET /index.html HTTP/1.0\r\n\r\n" のような
記述は間違いだということです。
|
|
CURLOPT_EGDSOCKET |
CURLOPT_RANDOM_FILE と似ていますが、
Entropy Gathering Daemon ソケットを使用してファイル名を生成する点が
違います。
|
|
CURLOPT_ENCODING |
"Accept-Encoding: " ヘッダの内容。 これにより、応答のデコードを可能にします。サポートされる エンコーディングは "identity"、 "deflate" および "gzip" です。もし空文字列 "" が指定された場合、 サポートされるエンコーディングをすべて含むヘッダが送信されます。 | cURL 7.10 で追加されました。 |
CURLOPT_FTPPORT |
FTP で "POST" を使用するための IP アドレスを取得する際に使用される値。 "POST" は、リモートサーバーに対してこちらが指定した IP アドレスに 接続するよう指示します。この値に設定できる内容は IP アドレス、ホスト名、 ネットワークインターフェイス名(Unix)、あるいは単に '-' を指定する ことでシステムのデフォルト IP アドレスを指定します。 | |
CURLOPT_INTERFACE |
使用するネットワークインターフェイスの名前。 インターフェイス名、IP アドレスあるいはホスト名が指定可能です。 | |
CURLOPT_KEYPASSWD |
CURLOPT_SSLKEY
あるいは CURLOPT_SSH_PRIVATE_KEYFILE 秘密鍵を使うときに必須となるパスワード。
|
cURL 7.16.1 で追加されました。 |
CURLOPT_KRB4LEVEL |
KRB4(Kerberos 4)セキュリティレベル。以下の値のいずれか
(セキュリティの低い順です)が指定可能です。
"clear"、
"safe"、
"confidential"、
"private"。
文字列がこれらのどれでもなかった場合は、
"private" が使用されます。このオプションを NULL
にすると KRB4 セキュリティを無効にします。現時点では、KRB4
セキュリティは FTP 転送にのみ使用可能です。
|
|
CURLOPT_POSTFIELDS |
HTTP "POST" で送信するすべてのデータ。
ファイルを送信するには、ファイル名の先頭に @
をつけてフルパスを指定します。ファイルタイプを明示的に指定するには、ファイル名の後に
';type=mimetype' 形式で続けます。
このパラメータは
'para1=val1¶2=val2&...'
のように url エンコードされた文字列形式で渡すこともできますし、
フィールド名をキー、データを値とする配列で渡すこともできます。
value が配列の場合、
Content-Type ヘッダには
multipart/form-data を設定します。
5.2.0 以降、このオプションに
@ プレフィックスつきでファイルを渡したときは
value が配列でなければならなくなりました。
|
|
CURLOPT_PROXY |
リクエストを経由させる HTTP プロキシ。 | |
CURLOPT_PROXYUSERPWD |
プロキシに接続するためのユーザー名とパスワード。 "[username]:[password]" 形式で指定します。 | |
CURLOPT_RANDOM_FILE |
使用するファイル名を、SSL の乱数生成器を使用して作成します。 | |
CURLOPT_RANGE |
取得するデータの範囲を "X-Y" 形式で指定します。X あるいは Y は省略可能です。 HTTP 転送では、いくつかの範囲をカンマで区切った "X-Y,N-M" のような形式もサポートしています。 | |
CURLOPT_REFERER |
HTTP リクエストで使用される "Referer: " ヘッダの内容。 | |
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
32 桁の十六進文字列。この文字列は、リモートホストの公開鍵の MD5 チェックサムでなければなりません。 md5sum がマッチしない限り、libcurl はホストとの接続を拒否します。 このオプションは、SCP および SFTP でのみ有効です。 | cURL 7.17.1 で追加されました。 |
CURLOPT_SSH_PUBLIC_KEYFILE |
公開鍵のファイル名。指定しなかった場合、libcurl はデフォルトの場所を探します。デフォルトは、 環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa.pub、設定されていなければ カレントディレクトリの "id_dsa.pub" です。 | cURL 7.16.1 で追加されました。 |
CURLOPT_SSH_PRIVATE_KEYFILE |
秘密鍵のファイル名。指定しなかった場合、libcurl はデフォルトの場所を探します。デフォルトは、
環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa、設定されていなければ
カレントディレクトリの "id_dsa" です。
ファイルがパスワードで保護されている場合は、パスワードを
CURLOPT_KEYPASSWD に設定します。
|
cURL 7.16.1 で追加されました。 |
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 秘密鍵の
暗号化エンジンの ID 。
|
|
CURLOPT_SSLENGINE_DEFAULT |
非対称暗号化で使用する暗号化エンジンの ID 。 | |
CURLOPT_SSLKEY |
SSL 秘密鍵を含むファイルの名前。 | |
CURLOPT_SSLKEYPASSWD |
CURLOPT_SSLKEY で指定した SSL 秘密鍵を
使用するために必要なパスワード。
|
|
CURLOPT_SSLKEYTYPE |
CURLOPT_SSLKEY で指定した SSL 秘密鍵の
形式。サポートされる型は以下のとおりです。
"PEM"(デフォルト)、"DER"
および "ENG" 。
|
|
CURLOPT_URL |
取得する URL 。 curl_init() でセッションを 初期化する際に指定することも可能です。 | |
CURLOPT_USERAGENT |
HTTP リクエストで使用される "User-Agent: " ヘッダの内容。 | |
CURLOPT_USERPWD |
接続に使用するユーザー名とパスワード。 "[username]:[password]" 形式で指定します。 |
value
には、
option
の以下の値に関して
配列を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_HTTP200ALIASES |
エラーではなく正常な応答として扱われる、HTTP 200 レスポンスの配列。 | cURL 7.10.3 で追加されました。 |
CURLOPT_HTTPHEADER |
設定する HTTP ヘッダフィールドの配列。
array('Content-type: text/plain', 'Content-length: 100')
形式。
|
|
CURLOPT_POSTQUOTE |
FTP リクエストの実行後に、サーバー上で実行する FTP コマンドの配列。 | |
CURLOPT_QUOTE |
FTP リクエストの前にサーバー上で実行する FTP コマンドの配列。 |
value
はストリームリソース(例えば
fopen() が作成するもの)であり、以下の
option
パラメータに設定します。
オプション | value に設定する内容 |
---|---|
CURLOPT_FILE |
転送内容が書き込まれるファイル。デフォルトは STDOUT (ブラウザウィンドウ)。 |
CURLOPT_INFILE |
アップロード時に転送内容を読み込むファイル。 |
CURLOPT_STDERR |
STDERR の代わりにエラーを出力する場所。 |
CURLOPT_WRITEHEADER |
転送のヘッダ部分が書き込まれるファイル。 |
value
には、
option
の以下の値に関して
有効なコールバック関数の名前を指定する必要があります。
オプション | value への設定値 |
---|---|
CURLOPT_HEADERFUNCTION |
コールバック関数の名前で、このコールバック関数は 2 つの引数を とります。最初のパラメータは CURL リソースで、2 番目は書き込む ヘッダデータの文字列です。このコールバック関数を使用するにあたり、 ヘッダデータを書き込む処理を実装するのはあなたの役目となります。 書き込んだデータのバイト数を返します。 |
CURLOPT_PASSWDFUNCTION |
コールバック関数の名前で、このコールバック関数は 3 つの引数を とります。最初のパラメータは CURL リソースで、2 番目はパスワード プロンプトの文字列、そして 3 番目はパスワードの最大長です。 入力されたパスワードを文字列で返します。 |
CURLOPT_PROGRESSFUNCTION |
コールバック関数の名前で、このコールバック関数は 3 つの引数をとります。 最初のパラメータは cURL リソースで、2 番目はファイル記述子リソース、 そして 3 番目は長さです。データを文字列で返します。 |
CURLOPT_READFUNCTION |
コールバック関数の名前で、このコールバック関数は 3 つの引数を
とります。最初のパラメータは cURL リソースで、2 番目は
CURLOPT_INFILE で cURL に渡したストリームリソース、
そして最後が読み込むデータの最大量です。
コールバック関数は、要求したデータ量以下の長さの文字列を返さなければなりません。
一般的には、渡されたストリームリソースから読み込んだデータを返します。
EOF を伝えるには空文字列を返さなければなりません。
|
CURLOPT_WRITEFUNCTION |
コールバック関数の名前で、このコールバック関数は 2 つの引数を とります。最初のパラメータは cURL リソースで、2 番目は書き込む データの文字列です。データの保存には、 このコールバック関数を使わなければなりません。 書き込んだデータの正確なバイト数を返す必要があります。 返さなければ、エラーで転送が異常終了します。 |
成功した場合に TRUE
を、失敗した場合に FALSE
を返します。
バージョン | 説明 |
---|---|
5.2.10 |
CURLOPT_PROTOCOLS および
CURLOPT_REDIR_PROTOCOLS
が追加されました。
|
5.1.0 |
CURLOPT_AUTOREFERER ,
CURLOPT_BINARYTRANSFER ,
CURLOPT_FTPSSLAUTH ,
CURLOPT_PROXYAUTH および
CURLOPT_TIMECONDITION
が追加されました。
|
5.0.0 |
CURLOPT_FTP_USE_EPRT ,
CURLOPT_NOSIGNAL ,
CURLOPT_UNRESTRICTED_AUTH ,
CURLOPT_BUFFERSIZE ,
CURLOPT_HTTPAUTH ,
CURLOPT_PROXYPORT ,
CURLOPT_PROXYTYPE ,
CURLOPT_SSLCERTTYPE および
CURLOPT_HTTP200ALIASES
が追加されました。
|
例1 新規に cURL セッションを初期化、ウェブページを取得する
<?php
// 新しい cURL リソースを作成します
$ch = curl_init();
// URL その他のオプションを適切に設定します
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// URL の内容を取得し、ブラウザに渡します
curl_exec($ch);
// cURL リソースを閉じ、システムリソースを開放します
curl_close($ch);
?>
例2 ファイルのアップロード
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
上の例の出力は以下となります。
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )
注意:
配列を
CURLOPT_POSTFIELDS
に渡すと、データを multipart/form-data でエンコードします。 一方 URL エンコードされた文字列を渡すと、データを application/x-www-form-urlencoded でエンコードします。