(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
curl_setopt — cURL 転送用オプションを設定する
指定した cURL セッションハンドルのオプションを設定します。
handle
curl_init() が返す cURL ハンドル。
option
設定したい CURLOPT_XXX
オプション。
value
option
に設定する値。
value
には、
option
の以下の値に関して
bool 値を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_AUTOREFERER |
true を設定すると、Location: によるリダイレクトを
たどる際には自動的に Referer: フィールドをリクエストに
追加します。
|
|
CURLOPT_COOKIESESSION |
true を設定すると、クッキーの "セッション" を新しく開始します。
以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、
libcurl に指示します。デフォルトでは、それがセッションクッキーであるか
どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。
セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ
有効であるクッキーのことです。
|
|
CURLOPT_CERTINFO |
true を設定すると、セキュアな転送時に SSL 証明書の情報を
STDERR に出力します。
|
cURL 7.19.1 で追加されました。
これを使うには、CURLOPT_VERBOSE
を on にしておかなければなりません。
|
CURLOPT_CONNECT_ONLY |
true を設定すると、プロキシの認証や接続の確立などをすべて行いますが、データは転送しません。
このオプションは、HTTP や SMTP そして POP3 用に実装されています。
|
cURL 7.15.2 で追加されました。 |
CURLOPT_CRLF |
true を設定すると、転送時に Unix 形式の改行を CRLF 形式に変換します。
|
|
CURLOPT_DISALLOW_USERNAME_IN_URL |
ユーザー名をURLに含めてはいけない場合に true にします。
デフォルトは 0 で、ユーザー名は許可されています。
|
cURL 7.61.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 |
CURLOPT_DNS_SHUFFLE_ADDRESSES |
名前が解決され、ひとつ以上のIPアドレスが返された際、
ランダムな順番でそれらを利用するために、
返されたアドレスの順番をシャッフルする場合に true にします。
これによって、IPv6 アドレスの前に IPv4 アドレスが使われるなどの事象が起こるかもしれません。
|
cURL 7.60.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 |
CURLOPT_HAPROXYPROTOCOL |
HAProxy Proxy プロトコル v1 ヘッダを接続の開始時に送信する場合に true にします。
デフォルトではこのヘッダは送信されません。
|
cURL 7.60.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 |
CURLOPT_SSH_COMPRESSION |
ビルトインの SSH 圧縮を有効にする場合に true にします。
これはリクエストであり、命令ではありません。
つまり、圧縮されるかどうかはサーバー次第です。
|
cURL 7.56.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 |
CURLOPT_DNS_USE_GLOBAL_CACHE |
true を設定すると、グローバル DNS キャッシュを利用します。
このオプションはスレッドセーフではありません。
また、PHP がスレッドセーフでない用途でビルドされている場合
(CLI, FCGI, Apache2-Prefork など) には、デフォルトで有効になっています。
|
|
CURLOPT_FAILONERROR |
true を設定すると、HTTP で 400 以上のコードが返ってきた際に
処理失敗と判断します。デフォルトでは、コードの値を無視して
ページの内容を取得します。
|
|
CURLOPT_SSL_FALSESTART |
true にすると、TLS false start を有効にします。
|
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_FILETIME |
true を設定すると、ドキュメントの更新日時を取得しようと試みます。
この値を取得するには、curl_getinfo() で
CURLINFO_FILETIME オプションを用います。
|
|
CURLOPT_FOLLOWLOCATION |
true を設定すると、サーバーが HTTP ヘッダの一部として送ってくる
"Location: " ヘッダの内容をたどります。
CURLOPT_MAXREDIRS も参照ください。
|
|
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_TCP_NODELAY |
true にすると、TCP の Nagle アルゴリズムを解除します。解除すると、小さなパケットがネットワーク上を流れる回数をできるだけ減らそうと試みます。
|
libcurl 7.11.2 以降と組み合わせてコンパイルしたときに利用可能です。 |
CURLOPT_FTPASCII |
CURLOPT_TRANSFERTEXT のエイリアスです。
|
|
CURLOPT_FTPLISTONLY |
true を設定すると、FTP でディレクトリ名のみ表示します。
|
|
CURLOPT_HEADER |
true を設定すると、ヘッダの内容も出力します。
|
|
CURLINFO_HEADER_OUT |
true を設定すると、リクエスト文字列を追跡します。
|
プレフィックスが CURLINFO_
となっているのは意図的なものです。
|
CURLOPT_HTTP09_ALLOWED |
HTTP/0.9 形式のレスポンスを許可するかどうか。libcurl 7.66.0 以降のデフォルトは false です。
それより前のバージョンのデフォルトは true でした。
|
PHP 7.3.15 と 7.4.3 以降 および cURL >= 7.64.0 をビルドした場合に使用可能です。 |
CURLOPT_HTTPGET |
true を設定すると、HTTP のリクエスト形式を GET に戻します。
GET はデフォルト設定なので、リクエスト形式が変更されている
場合にのみ必要となります。
|
|
CURLOPT_HTTPPROXYTUNNEL |
true にすると、指定された HTTP プロキシを介してトンネルします。
|
|
CURLOPT_HTTP_CONTENT_DECODING |
false を設定すると、生の HTTP レスポンスボディを取得します。
|
libcurl >= 7.16.2 とビルドした場合に利用可能です。 |
CURLOPT_KEEP_SENDING_ON_ERROR |
返されたHTTPコードが300以上であっても、リクエストボディを送信し続ける場合は true にします。
デフォルトのアクションはリクエストボディの送信を止め、
ストリームまたは接続を閉じます。
手動でNTLM認証を行う場合に、このオプションは適切です。
ほとんどのアプリケーションは、このオプションは不要です。
|
PHP 7.3.0 以降で、libcurl >= 7.51.0 とビルドした場合に利用可能です。 |
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_PATH_AS_IS |
true にすると、ドットの連続を処理しません。
|
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_PIPEWAIT |
true にすると、パイプライン化/多重化を待ちます。
|
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
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_SASL_IR |
true にすると、最初のパケット内の最初のレスポンスの送信を有効にします。
|
cURL 7.31.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_SSL_ENABLE_ALPN |
false にすると、SSL ハンドシェイクの際の ALPN を無効にします
(SSL バックエンドの libcurl がそれに対応するビルドである場合)。
これは、http2 ネゴシエーションに使えます。
|
cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_SSL_ENABLE_NPN |
false にすると、SSL ハンドシェイクの際の NPN を無効にします
(SSL バックエンドの libcurl がそれに対応するビルドである場合)。
これは、http2 ネゴシエーションに使えます。
|
cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_SSL_VERIFYPEER |
false を設定すると、cURL はサーバー証明書の検証を行いません。
別の証明書を CURLOPT_CAINFO オプションで
指定するか、CURLOPT_CAPATH オプションで
証明ディレクトリを指定します。
|
cURL 7.10 以降、デフォルト値は true です。また、
cURL 7.10 以降、デフォルトでインストールされています。
|
CURLOPT_SSL_VERIFYSTATUS |
true にすると、証明書のステータスを検証します。
|
cURL 7.41.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_PROXY_SSL_VERIFYPEER |
false を設定すると、cURL がピアの証明書の検証を行わなくなります。
別の証明書を検証するには、CURLOPT_CAINFO オプションで指定するか、
CURLOPT_CAPATH を使って証明書のディレクトリを指定するやり方が使えます。
false を指定すると、ピアの証明書の検証はオプションに関係なく成功します。
|
true がデフォルトです。
PHP 7.3.0 以降で、libcurl >= 7.52.0 とビルドした場合に利用可能です。
|
CURLOPT_SAFE_UPLOAD |
この値は常に true になります。
CURLOPT_POSTFIELDS
を使ってファイルをアップロードする際に、
プレフィックス @ のサポートを無効にします。
これは、@
で始まる値を安全にフィールドに渡せるということです。
CURLFile も代わりに使えます。
|
|
CURLOPT_SUPPRESS_CONNECT_HEADERS |
true を設定すると、
CURLOPT_HTTPPROXYTUNNEL を使って CONNECT リクエストが生成された場合に、
ユーザーのコールバック関数
CURLOPT_HEADERFUNCTION および CURLOPT_WRITEFUNCTION
では proxy CONNECT のレスポンスヘッダを抑制します。
|
cURL 7.54.0 で追加されました。PHP 7.3.0 以降で使用可能です。 |
CURLOPT_TCP_FASTOPEN |
true にすると、TCP Fast Open を有効にします。
|
cURL 7.49.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_TFTP_NO_OPTIONS |
true にすると、TFTP オプションリクエストを送信しません。
|
cURL 7.48.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
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_CONNECTTIMEOUT |
接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。 | ||
CURLOPT_CONNECTTIMEOUT_MS |
接続の試行を待ち続けるミリ秒数。0 は永遠に待ち続けることを意味します。 システムの標準の名前解決を使うように libcurl をビルドしている場合は、 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 | cURL 7.16.2 で追加されました。 | |
CURLOPT_DNS_CACHE_TIMEOUT |
DNS エントリをメモリ内に保持し続ける秒数。デフォルトでは 120(2 分)に設定されています。 | ||
CURLOPT_EXPECT_100_TIMEOUT_MS |
期待するタイムアウト。連続100リクエストの時間をミリ秒で指定します。 デフォルトは1000ミリ秒です。 | cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 | |
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS |
Happy Eyeballs アルゴリズムで IPv6 接続を優先して開始します。 Happy Eyeballs アルゴリズムは、 デュアルスタックホストのために IPv4 と IPv6アドレス両方に接続を試みますが、 IPv6 を優先して扱い、そのタイムアウトをミリ秒単位で指定します。 デフォルトは CURL_HET_DEFAULT であり、現状は200ミリ秒です。 | cURL 7.59.0 で追加されました。PHP 7.3.0 以降で使用可能です。 | |
CURLOPT_FTPSSLAUTH |
(使用可能な場合の)FTP 認証方法。
CURLFTPAUTH_SSL (まず SSL を試す)、
CURLFTPAUTH_TLS (まず TLS を試す)あるいは
CURLFTPAUTH_DEFAULT (cURL が決める)のいずれかです。
|
cURL 7.12.2 で追加されました。 | |
CURLOPT_HEADEROPT |
ヘッダをどう扱うかを指定します。
次の定数のうち、一つを指定できます:
CURLHEADER_UNIFIED :
CURLOPT_HTTPHEADER で指定されたヘッダが、
サーバーとプロキシ双方のリクエストに対して使われます。
このオプションが有効な場合、
CURLOPT_PROXYHEADER は効果がありません。
CURLHEADER_SEPARATE :
CURLOPT_HTTPHEADER で指定されたヘッダは、
プロキシには送られず、サーバーにのみ送られます。
プロキシに送るヘッダは、
CURLOPT_PROXYHEADER を設定しなければなりません。
CONNECT でないリクエストがプロキシに送信された場合、
libcurl はサーバーとプロキシ両方にヘッダを送信することに注意してください。
CONNECT リクエストを送信する場合、
libcurl は CURLOPT_PROXYHEADER
をプロキシのみに送り、
CURLOPT_HTTPHEADER をサーバーにのみ送信します。
cURL 7.42.1 以降は
CURLHEADER_SEPARATE がデフォルトで、
それより前では、
CURLHEADER_UNIFIED がデフォルトでした。
|
cURL 7.37.0 で追加されました。PHP 7.0.7 以降で利用可能です。 | |
CURLOPT_HTTP_VERSION |
CURL_HTTP_VERSION_NONE (デフォルト。
使用するバージョンを決めるのは cURL にまかせる)、
CURL_HTTP_VERSION_1_0 (HTTP/1.0 を使用する)、
あるいは CURL_HTTP_VERSION_1_1 (HTTP/1.1 を使用する)
CURL_HTTP_VERSION_2_0 (HTTP 2 の使用を試みる),
CURL_HTTP_VERSION_2 (CURL_HTTP_VERSION_2_0 のエイリアス),
CURL_HTTP_VERSION_2TLS (TLS (https) の場合のみ HTTP 2 の使用を試みる) または
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (HTTP 1.1 へのアップグレードを行わず、HTTP/2 を使って TLS でないリクエストを発行する)
のいずれかです。
|
||
CURLOPT_HTTPAUTH |
使用する HTTP 認証方法。以下の中から選びます。
2 つ以上の方法を組み合わせるには、ビット演算子
|
||
CURLOPT_INFILESIZE |
ファイルをリモートサイトにアップロードする際のファイルサイズ。
このオプションを指定しても、libcurl がそれ以上のデータを送信するのは止められないことに注意しましょう。
実際に何が送信されるのかは
CURLOPT_READFUNCTION に依存します。
|
||
CURLOPT_LOW_SPEED_LIMIT |
1 秒あたりのバイト数で、転送速度がこれより遅い期間が
CURLOPT_LOW_SPEED_TIME 秒以上続いた場合に
PHP は転送を終了します。
|
||
CURLOPT_LOW_SPEED_TIME |
転送速度が CURLOPT_LOW_SPEED_LIMIT
より遅い期間がどれだけ続いた場合に転送を異常終了させるかを、
秒単位で指定します。
|
||
CURLOPT_MAIL_RCPT_ALLLOWFAILS |
Allow RCPT TO command to fail for some recipients. | When sending data to multiple recipients, by default cURL will abort SMTP conversation if at least one of the recipients causes RCPT TO command to return an error. This option tells cURL to ignore errors and proceed with the remaining valid recipients. If all recipients trigger RCPT TO failures and this flag is set, cURL will abort the SMTP conversation and return the error received from the last RCPT TO command. | |
CURLOPT_MAXAGE_CONN |
The maximum idle time allowed for an existing connection to be considered for reuse.
Default maximum age is set to 118 seconds.
|
||
CURLOPT_MAXFILESIZE_LARGE |
The maximum file size in bytes allowed to download. If the file requested is found larger than this value,
the transfer will not start and CURLE_FILESIZE_EXCEEDED will be returned.
The file size is not always known prior to download, and for such files this option has no effect even if
the file transfer ends up being larger than this given limit.
|
||
CURLOPT_MAXLIFETIME_CONN |
The maximum time in seconds, since the creation of the connection, that is allowed for an existing connection to have for it to be considered for reuse. If a connection is found in the cache that is older than this value, it will instead be closed once any in-progress transfers are complete. Default is 0 seconds, meaning the option is disabled and all connections are eligible for reuse. | ||
CURLOPT_MAXCONNECTS |
許可される持続的接続の最大数。もしこの値に達した場合、 オープンされている接続数が増えるのを避けるため、 キャッシュされている接続のうち一番古いものを閉じます。 | ||
CURLOPT_MAXREDIRS |
HTTP のリダイレクト先を追いかける最大値。
CURLOPT_FOLLOWLOCATION とあわせて使用します。
リダイレクトループを避けるため、
デフォルト値として 20 が設定されています。
-1 を設定すると、リダイレクトループを許可します。
0 を指定すると、全てのリダイレクトを拒否します。
|
||
CURLOPT_PORT |
接続先のポート番号。 | ||
CURLOPT_POSTREDIR |
CURLOPT_FOLLOWLOCATION が設定されているときに、
どの形式のリダイレクトの場合に HTTP POST メソッドを維持するのかを、
1 (301 Moved Permanently)、2 (302 Found)、4 (303 See Other) のビットマスクで指定します。
|
cURL 7.19.1 で追加されました。 | |
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_SOCKS4 、
CURLPROXY_SOCKS5 、
CURLPROXY_SOCKS4A あるいは
CURLPROXY_SOCKS5_HOSTNAME 。
|
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_SOCKS5_AUTH |
利用する SOCKS5 認証方法。以下が指定できます:
一つ以上の認証方法を組み合わせるために ビット演算子
デフォルトは |
PHP 7.3.0 以降 および curl >= 7.55.0 で利用可能です。 | |
CURLOPT_SSL_OPTIONS |
SSL 関連の振る舞いのオプションを設定します。
以下に示す定数のビットマスクの組み合わせです:
CURLSSLOPT_ALLOW_BEAST :
SSL3 や TLS1.0 プロトコルのセキュリティ上の欠陥を回避するあらゆる手段を使わない。
CURLSSLOPT_NO_REVOKE :
証明書の失効チェックを行うSSLバックエンドについて、それを無効にする。
CURLSSLOPT_AUTO_CLIENT_CERT : automatically
locate and use a client certificate for authentication, when
requested by the server. This option is only supported for
Schannel (the native Windows SSL library).
CURLSSLOPT_NATIVE_CA : use the operating system's
native CA store for certificate verification. Works only on Windows
when built to use OpenSSL. This option is experimental and behavior is subject to change.
CURLSSLOPT_NO_PARTIALCHAIN : do not accept "partial" certificate
chains, which cURL otherwise does by default. This option is only supported for OpenSSL
and will fail the certificate verification if the chain ends with
an intermediate certificate and not with a root certificate.
CURLSSLOPT_REVOKE_BEST_EFFORT : ignore certificate revocation checks
in case of missing or offline distribution points for those SSL backends where
such behavior is present. This option is only supported for Schannel (the native Windows SSL library).
If combined with CURLSSLOPT_NO_REVOKE , the latter takes precedence.
|
cURL 7.25.0 で追加されました。PHP 7.0.7 以降で利用可能です。 | |
CURLOPT_SSL_VERIFYHOST |
2 は、SSL ピア証明書の Subject Alternate Name フィールド、
または Common Name フィールドの値が、指定されたホスト名にマッチするかを調べます。
0 は、名前をチェックしません。
1 は、使うべきではありません。
本番環境では、このオプションの値は常に
2 (デフォルト値) にしておかなければなりません。
|
値 1 は、cURL 7.28.1 以降では使えなくなりました。
|
|
CURLOPT_SSLVERSION |
CURL_SSLVERSION_DEFAULT (0)、
CURL_SSLVERSION_TLSv1 (1)、
CURL_SSLVERSION_SSLv2 (2)、
CURL_SSLVERSION_SSLv3 (3)、
CURL_SSLVERSION_TLSv1_0 (4)、
CURL_SSLVERSION_TLSv1_1 (5)、
CURL_SSLVERSION_TLSv1_2 (6)、
CURL_SSLVERSION_TLSv1_3 (7) のいずれかの値。
TLSバージョンの最大値は、定数 CURL_SSLVERSION_MAX_* で設定できます。
定数 CURL_SSLVERSION_MAX_* のうちのひとつと、
定数 CURL_SSLVERSION_* のうちのひとつを OR で設定することもできます。
CURL_SSLVERSION_MAX_DEFAULT (ライブラリがサポートする最大のバージョン),
CURL_SSLVERSION_MAX_TLSv1_0 ,
CURL_SSLVERSION_MAX_TLSv1_1 ,
CURL_SSLVERSION_MAX_TLSv1_2 , または
CURL_SSLVERSION_MAX_TLSv1_3 .
|
||
CURLOPT_PROXY_SSL_OPTIONS |
HTTPSプロキシの振る舞いを設定するオプションです。
これは以下の定数のうち、任意のものを組み合わせたビットマスクです:
CURLSSLOPT_ALLOW_BEAST :
SSL3 と TLS1.0 プロトコルに存在する脆弱性を回避するための回避策を使いません。
CURLSSLOPT_NO_REVOKE :
SSLバックエンドの証明書の失効チェックを無効にします。
但し、そうした振る舞いが存在した場合に限ります(curl >= 7.44.0)
CURLSSLOPT_NO_PARTIALCHAIN :
"部分的な"証明書チェインを許可しません。
デフォルトでは許可されています(curl >= 7.68.0)
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 | |
CURLOPT_PROXY_SSL_VERIFYHOST |
HTTPSプロキシの証明書の名前フィールドをプロキシ名と突き合わせて検証する場合
2 を設定します。
0 を設定すると、証明書でどのような名前が使われていようと、接続は成功します。
注意して使用してください!
1 は curl 7.28.0 以前ではデバッグオプションとして扱われていました。
curl 7.28.1 から 7.65.3 までは CURLE_BAD_FUNCTION_ARGUMENT が返されていました。
curl 7.66.0 以降では 1 と 2 は同じ値として扱われます。
本番環境では、このオプションの値は (デフォルトの) 2 であるべきです。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 | |
CURLOPT_PROXY_SSLVERSION |
以下のうちのひとつが指定できます: CURL_SSLVERSION_DEFAULT ,
CURL_SSLVERSION_TLSv1 ,
CURL_SSLVERSION_TLSv1_0 ,
CURL_SSLVERSION_TLSv1_1 ,
CURL_SSLVERSION_TLSv1_2 ,
CURL_SSLVERSION_TLSv1_3 ,
CURL_SSLVERSION_MAX_DEFAULT ,
CURL_SSLVERSION_MAX_TLSv1_0 ,
CURL_SSLVERSION_MAX_TLSv1_1 ,
CURL_SSLVERSION_MAX_TLSv1_2 ,
CURL_SSLVERSION_MAX_TLSv1_3 ,
CURL_SSLVERSION_SSLv3
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 | |
CURLOPT_STREAM_WEIGHT |
ストリームの重みを数値で設定します(1 から 256 までの数値) | cURL 7.46.0 で追加されました。PHP 7.0.7 以降で利用可能です。 | |
CURLOPT_TCP_KEEPALIVE |
この値を 1 に設定すると、TCP keepalive のプローブが送信されます。
これらのプローブを送信する頻度と遅延時間は オペレーティングシステムがサポートしていれば
CURLOPT_TCP_KEEPIDLE と CURLOPT_TCP_KEEPINTVL で制御可能です。
0 に設定すると(デフォルト)、keepalive のプローブは送信されません。
|
cURL 7.25.0 で追加されました。 | |
CURLOPT_TCP_KEEPIDLE |
CURLOPT_TCP_KEEPALIVE が有効になっている場合に、
keepalive のプローブを送信する前に、接続をアイドルなままにしてオペレーティングシステムを待たせる
遅延時間を秒単位で設定します。
全てのオペレーティングシステムがこのオプションをサポートしているわけではありません。
デフォルトは 60 です。
|
cURL 7.25.0 で追加されました。 | |
CURLOPT_TCP_KEEPINTVL |
CURLOPT_TCP_KEEPALIVE が有効になっている場合に、
keepalive のプローブを送信する前に、オペレーティングシステムが待つ間隔を秒単位で設定します。
全てのオペレーティングシステムがこのオプションをサポートしているわけではありません。
デフォルトは 60 です。
|
cURL 7.25.0 で追加されました。 | |
CURLOPT_TIMECONDITION |
CURLOPT_TIMEVALUE の扱いを決定します。
CURLOPT_TIMEVALUE で指定した時刻以降に
変更されたページのみを返す場合は
CURL_TIMECOND_IFMODSINCE を使用します。
CURLOPT_HEADER が true だと仮定すると、
ページが変更されていない場合は
"304 Not Modified" ヘッダが返されます。
CURL_TIMECOND_IFUNMODSINCE は反対の意味です。
|
cURL 7.46.0 より前のバージョンでは、
CURL_TIMECOND_IFMODSINCE がデフォルトでした。
|
|
CURLOPT_TIMEOUT |
cURL 関数の実行にかけられる時間の最大値。 | ||
CURLOPT_TIMEOUT_MS |
cURL 関数の実行にかけられる最大のミリ秒数。 システムの標準の名前解決を使うように libcurl をビルドしている場合は、 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 | cURL 7.16.2 で追加されました。 | |
CURLOPT_TIMEVALUE |
1970 年 1 月 1 日からの経過秒数。この値は
CURLOPT_TIMECONDITION で使用されます。
|
||
CURLOPT_TIMEVALUE_LARGE |
1970年1月1日からの経過時刻を秒単位で示します。
この値は CURLOPT_TIMECONDITION によって使われます。
デフォルトは0です。
このオプションと CURLOPT_TIMEVALUE の違いは引数の型です。
'long' が 32ビット長しかないシステムでは、
2038年以降の日付を設定するためにこのオプションを使わなければいけません。
|
cURL 7.59.0 で追加されました。PHP 7.3.0 以降で使用可能です。 | |
CURLOPT_UPKEEP_INTERVAL_MS |
Some protocols have "connection upkeep" mechanisms. These mechanisms usually send some traffic
on existing connections in order to keep them alive. This option defines the connection upkeep interval.
Currently, the only protocol with a connection upkeep mechanism is HTTP/2. When the connection upkeep
interval is exceeded, an HTTP/2 PING frame is sent on the connection.
Default is 60 seconds.
|
||
CURLOPT_UPLOAD_BUFFERSIZE |
Preferred buffer size in bytes for the cURL upload buffer. The upload buffer size by default is 64 kilobytes. The maximum buffer size allowed to be set is 2 megabytes. The minimum buffer size allowed to be set is 16 kilobytes. | ||
CURLOPT_MAX_RECV_SPEED_LARGE |
ダウンロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 デフォルトは無制限です。 | cURL 7.15.5 で追加されました。 | |
CURLOPT_MAX_SEND_SPEED_LARGE |
アップロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 デフォルトは無制限です。 | cURL 7.15.5 で追加されました。 | |
CURLOPT_SSH_AUTH_TYPES |
CURLSSH_AUTH_PUBLICKEY ,
CURLSSH_AUTH_PASSWORD ,
CURLSSH_AUTH_HOST ,
CURLSSH_AUTH_KEYBOARD
のビットマスク。
CURLSSH_AUTH_ANY にすると libcurl がいずれかひとつを選択します。
|
cURL 7.16.1 で追加されました。 | |
CURLOPT_IPRESOLVE |
ホスト名の解決にどの形式の IP アドレスを使うのかを、アプリケーションが選べるようにします。
複数のバージョンの IP アドレスで解決できるホスト名のときに使うもので、指定できる値は
CURL_IPRESOLVE_WHATEVER 、
CURL_IPRESOLVE_V4 そして
CURL_IPRESOLVE_V6 です。
デフォルトは CURL_IPRESOLVE_WHATEVER です。
|
cURL 7.10.8 で追加されました。 | |
CURLOPT_FTP_FILEMETHOD |
FTP(S) サーバー上のファイルに到達するために使う方法を curl に伝えます。利用可能な値は
CURLFTPMETHOD_DEFAULT 、
CURLFTPMETHOD_MULTICWD 、
CURLFTPMETHOD_NOCWD および
CURLFTPMETHOD_SINGLECWD です。
|
cURL 7.15.1 で追加されました。 |
value
は、
option
パラメータの
以下の値に関して文字列である必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_ABSTRACT_UNIX_SOCKET |
ホストにTCP接続する代わりに、抽象化されたUnixドメインソケットの使用を有効にし、
パスを指定された string に設定します。
このオプションは CURLOPT_UNIX_SOCKET_PATH
と同じセマンティクスを共有しています。
これらのふたつのオプションは同じストレージを共有するので、
ハンドルごとにそれらのうちのひとつだけを設定できます。
|
cURL 7.53.0 で追加されました。PHP 7.3.0 以降で利用可能です。 |
CURLOPT_ALTSVC |
Pass the filename for cURL to use as the Alt-Svc cache file to read existing cache contents from and
possibly also write it back to a after a transfer, unless CURLALTSVC_READONLYFILE
is set via CURLOPT_ALTSVC_CTRL .
|
|
CURLOPT_ALTSVC_CTRL |
Populate the bitmask with the correct set of features to instruct cURL how to handle Alt-Svc for the
transfers using this handle. cURL only accepts Alt-Svc headers over HTTPS. It will also only complete
a request to an alternative origin if that origin is properly hosted over HTTPS.
Setting any bit will enable the alt-svc engine. The options are:
CURLALTSVC_H1 ,
CURLALTSVC_H2 ,
CURLALTSVC_H3 , and
CURLALTSVC_READONLYFILE .
|
|
CURLOPT_AWS_SIGV4 |
Provides AWS V4 signature authentication on HTTP(S) header.
This option overrides any other authentication types that have been set in
|
|
CURLOPT_CAINFO |
接続先を検証するための証明書を保持するファイル名。
これは CURLOPT_SSL_VERIFYPEER を使用する場合に
のみ意味を持ちます。
|
絶対パスで指定しなければならないでしょう。 |
CURLOPT_CAINFO_BLOB |
The name of a PEM file holding one or more certificates to verify the
peer with. This option overrides CURLOPT_CAINFO .
|
Available as of PHP 8.2.0 and cURL 7.77.0 |
CURLOPT_CAPATH |
複数の証明書ファイルを保持するディレクトリ。このオプションは
CURLOPT_SSL_VERIFYPEER とともに使用します。
|
|
CURLOPT_COOKIE |
HTTP リクエストにおける
"Cookie: " ヘッダの内容。
クッキーが複数ある場合は、セミコロンとスペースで区切られる
(例 "fruit=apple; colour=red ")
ことに注意しましょう。
|
|
CURLOPT_COOKIEFILE |
クッキーのデータを保持するファイルの名前。クッキーファイルは、 Netscape フォーマットあるいは HTTP ヘッダを単純にファイルにダンプしたものが使用可能です。 名前が空文字列の場合はクッキーを読み込みませんが、クッキーの処理は有効なままです。 | |
CURLOPT_COOKIEJAR |
ハンドルを閉じる際 (curl_close のコール後など) に、 すべての内部クッキーを保存するファイルの名前。 | |
CURLOPT_COOKIELIST |
内部的な Cookie ストアに追加するCookie文字列(つまり、NetScape/Mozilla フォーマット または
HTTP形式の Set-Cookieヘッダ)。
"ALL" の場合、メモリに保持している全てのクッキーを削除します。
"SESS" の場合、メモリに保持している全てのセッションクッキーを削除します。
"FLUSH" の場合、CURLOPT_COOKIEJAR で指定されたファイルに全ての既知の Cooie を書き込みます。
"RELOAD" の場合、CURLOPT_COOKIEFILE で指定されたファイルから全てのクッキーを読み込みます。
|
cURL 7.14.1 以降で利用可能です。 |
CURLOPT_CUSTOMREQUEST |
HTTP リクエストで
"GET" あるいは "HEAD" 以外に
使用するカスタムメソッド。これが有用なのは、"DELETE"
やその他のあまり知られていない HTTP リクエストを実行する場合です。
使用可能な値は "GET" 、
"POST" 、"CONNECT" などです。
HTTP リクエストの内容をすべて指定するわけではありません。つまり、
"GET /index.html HTTP/1.0\r\n\r\n" のような
記述は間違いだということです。
|
|
CURLOPT_DEFAULT_PROTOCOL |
URL にスキーム名がなかった場合のデフォルトのプロトコル |
cURL 7.45.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_DNS_INTERFACE |
DNS リゾルバがバインドするべきネットワークインターフェイス名を設定します。 これは、(アドレスではなく)インターフェイス名でなければなりません。 |
cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_DNS_LOCAL_IP4 |
リゾルバがバインドするべきローカルの IPv4 アドレスを設定します。 この値は、数値の IPv4 アドレスを文字列で含めるべきです。 |
cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_DNS_LOCAL_IP6 |
リゾルバがバインドするべきローカルの IPv6 アドレスを設定します。 この値は、数値の IPv6 アドレスを文字列で含めるべきです。 |
cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_EGDSOCKET |
CURLOPT_RANDOM_FILE と似ていますが、
Entropy Gathering Daemon ソケットを使用してファイル名を生成する点が
違います。
|
|
CURLOPT_ENCODING |
"Accept-Encoding: " ヘッダの内容。
これにより、応答のデコードを可能にします。サポートされる
エンコーディングは "identity" 、
"deflate" および "gzip"
です。もし空文字列 "" が指定された場合、
サポートされるエンコーディングをすべて含むヘッダが送信されます。
|
cURL 7.10 で追加されました。 |
CURLOPT_FTPPORT |
FTP で "PORT" を使用するための IP アドレスを取得する際に使用される値。 "PORT" は、リモートサーバーに対してこちらが指定した IP アドレスに 接続するよう指示します。この値に設定できる内容は IP アドレス、ホスト名、 ネットワークインターフェイス名(Unix)、あるいは単に '-' を指定する ことでシステムのデフォルト IP アドレスを指定します。 | |
CURLOPT_HSTS |
HSTS (HTTP Strict Transport Security) cache file name. |
|
CURLOPT_HSTS_CTRL |
Controls HSTS (HTTP Strict Transport Security) behavior. Populate the bitmask with the correct set of
features to instruct cURL how to handle HSTS for the transfers using this handle.
|
|
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_LOGIN_OPTIONS |
プロトコル特有のログインオプションを設定するために使えます。
たとえば好ましい認証メカニズムが "AUTH=NTLM" とか "AUTH=*" の場合で、
CURLOPT_USERNAME オプションと組み合わせて使うべき場合です。
|
cURL 7.34.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_PINNEDPUBLICKEY |
ピン止めされた公開鍵を設定します。 ピン止めされた公開鍵のファイル名ファイル名を文字列として指定できます。 期待されているファイルフォーマットは "PEM" または "DER" 形式です。 文字列は、 base64 エンコードされた sha256 ハッシュで、 "sha256//" が先頭に付いたものです。これを任意の数だけ指定でき、 ";" で区切られます。 | cURL 7.39.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_POSTFIELDS |
HTTP "POST" で送信するすべてのデータ。
このパラメータは
'para1=val1¶2=val2&... '
のように url エンコードされた文字列形式で渡すこともできますし、
フィールド名をキー、データを値とする配列で渡すこともできます。
value が配列の場合、
Content-Type ヘッダには
multipart/form-data を設定します。
ファイルは CURLFile または CURLStringFile を使って送信することが出来ます。
この場合、value は配列でなければなりません。
|
|
CURLOPT_PRIVATE |
この cURL ハンドルに関連づけるデータ。ここで関連づけたデータは、
curl_getinfo() の
CURLINFO_PRIVATE オプションで取得できます。
cURL はデータを一切加工しません。
cURL マルチハンドルを使う場合は一般的に、この値が cURL ハンドルを特定する一意なキーとなります。
|
cURL 7.10.3 で追加されました。 |
CURLOPT_PRE_PROXY |
CURLOPT_PROXY で指定された HTTP(S) プロキシにcurlが接続する前に、
事前に接続する preproxy を設定します。
この値には、ホスト名またはドットで区切られた数値のIPアドレスを設定します。
preproxy は SOCKS プロキシだけがなることができ、
どの socks を使うかを指定するために [scheme]:// を先頭に付けます。
数値の IPv6 アドレスは 角括弧 "[]" 内に書かなければいけません。
preproxy にから文字列を設定すると、明示的に preproxy を無効にできます。
この文字列にポート番号を設定するには、
ホスト名の最後に :[port] を追加します。
プロキシのポート番号は別のオプション CURLOPT_PROXYPORT
で指定しても構いません。ポート番号を指定しない場合は、
デフォルトでは 1080 を使います。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY |
リクエストを経由させる HTTP プロキシ。 | |
CURLOPT_PROXY_SERVICE_NAME |
プロキシ認証サービス名 | HTTP プロキシについては、cURL 7.43.0 で追加されました。 SOCKS5 プロキシについては、cURL 7.49.0 で追加されました。 PHP 7.0.7 以降で利用可能です。 |
CURLOPT_PROXY_CAINFO |
The path to proxy Certificate Authority (CA) bundle. Set the path as a string naming a file holding one or more certificates to verify the HTTPS proxy with. This option is for connecting to an HTTPS proxy, not an HTTPS server. Defaults set to the system path where libcurl's cacert bundle is assumed to be stored. | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_CAINFO_BLOB |
The name of a PEM file holding one or more certificates to verify the HTTPS proxy with. This option is for connecting to an HTTPS proxy, not an HTTPS server. Defaults set to the system path where libcurl's cacert bundle is assumed to be stored. | Available as of PHP 8.2.0 and libcurl >= cURL 7.77.0. |
CURLOPT_PROXY_CAPATH |
HTTPSプロキシを検証するための複数のCA証明書が置かれたディレクトリ。 | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_CRLFILE |
PEMフォーマットの CRL (Certificate Revocation List, 証明書失効リスト) を連結したファイル名を設定します。 これはSSL通信の際に行われる証明書の検証に使います。 | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_KEYPASSWD |
CURLOPT_PROXY_SSLKEY で設定する秘密鍵で使う、
必須のパスワードを設定します。
証明書を読み込むのにパスフレーズは不要ですが、
秘密鍵を読み込むにはパスフレーズが必要です。
このオプションはHTTPSプロキシに接続するために必要です。
HTTPSサーバーに接続するためのものではありません。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_PINNEDPUBLICKEY |
HTTPSプロキシ向けの pinned public key を設定します。 pinned public key のファイル名を文字列で設定できます。 ファイルフォーマットは "PEM" または "DER" です。 base64 エンコードされた sha256 ハッシュ を任意の数だけ "sha256//" の後に続けることもできます。このハッシュは ";" で区切ります。 | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_SSLCERT |
HTTPSプロキシに接続する時に使うクライアント証明書のフォーマット。
デフォルトは Secure Transport の場合 "P12" で、
それ以外のエンジンでは "PEM" ですが、
CURLOPT_PROXY_SSLCERTTYPE でも変更できます。
NSS や Secure transport では、
セキュリティデータベースで名付けられた証明書のニックネームも設定できます。
現在のディレクトリにあるファイルを使いたい場合は、
ニックネームとの混乱を避けるため "./" をプレフィックスとして付けてください。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_SSLCERTTYPE |
HTTPSプロキシに接続する時に使うクライアント証明書のフォーマット。 サポートされているのは "PEM" と "DER" ですが、 Secure Transport はこれらをサポートしていません。 OpenSSL (0.9.3 以降) と Secure Transport (iOS 5 以降, または OS X 10.7 以降) では PKCS#12-encoded ファイル向けに "P12" もサポートしています。デフォルトは "PEM" です。 | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_SSL_CIPHER_LIST |
HTTPSプロキシと接続を確立するために使う暗号スイートの一覧。 この一覧はひとつ以上の暗号スイートの文字列がコロンで区切られており、 構文的に正しくなければなりません。 コンマやスペースも区切り文字としては有効ですが、通常はコロンが使われます。 !, - および + が演算子として使えます。 | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_TLS13_CIPHERS |
TLS 1.3 接続をプロキシと確立するために使う暗号スイートの一覧。
この一覧はひとつ以上の暗号スイートの文字列がコロンで区切られており、
構文的に正しくなければなりません。
現状、このオプションはcurlが OpenSSL 1.1.1 以降とビルドされた時にだけ使われています。
OpenSSL 以外のSSLバックエンドを使っている場合は、
CURLOPT_PROXY_SSL_CIPHER_LIST オプションを使って
TLS 1.3 の暗号スイートを設定できます。
|
PHP 7.3.0 以降 および cURL >= 7.61.0 と OpenSSL >= 1.1.1 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_SSLKEY |
HTTPSプロキシに接続するのに使う秘密鍵のファイル名。
デフォルトのフォーマットは "PEM" で、
そのフォーマットは CURLOPT_PROXY_SSLKEYTYPE で変更できます。
(iOS と Mac OS X のみ) Secure Transport を使って curl がビルドされている場合、
このオプションは無視されます。
|
PHP 7.3.0 以降 および cURL >= 7.61.0 をビルドした場合、 かつ TLS が有効な場合にのみ使用可能です。 |
CURLOPT_PROXY_SSLKEYTYPE |
秘密鍵のフォーマット。"PEM", "DER" および "ENG" がサポートされています。 | PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_TLSAUTH_PASSWORD |
CURLOPT_PROXY_TLSAUTH_TYPE オプションで指定したTLS認証メソッド
で使うパスワード。
CURLOPT_PROXY_TLSAUTH_USERNAME オプションも設定する必要があります。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_TLSAUTH_TYPE |
HTTPS接続で使うTLS認証メソッド。
"SRP" がサポートされています。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXY_TLSAUTH_USERNAME |
CURLOPT_PROXY_TLSAUTH_TYPE オプションで指定された
HTTPSプロキシのTLS認証メソッドで使うユーザー名。
CURLOPT_PROXY_TLSAUTH_PASSWORD オプションも設定する必要があります。
|
PHP 7.3.0 以降 および cURL >= 7.52.0 をビルドした場合に使用可能です。 |
CURLOPT_PROXYUSERPWD |
プロキシに接続するためのユーザー名とパスワード。
"[username]:[password]" 形式で指定します。
|
|
CURLOPT_RANDOM_FILE |
使用するファイル名を、SSL の乱数生成器を使用して作成します。 | |
CURLOPT_RANGE |
取得するデータの範囲を
"X-Y" 形式で指定します。X あるいは Y は省略可能です。
HTTP 転送では、いくつかの範囲をカンマで区切った
"X-Y,N-M" のような形式もサポートしています。
|
|
CURLOPT_REFERER |
HTTP リクエストで使用される "Referer: "
ヘッダの内容。
|
|
CURLOPT_SASL_AUTHZID |
The authorization identity (authzid) for the transfer. Only applicable to the PLAIN SASL authentication mechanism where it is optional. When not specified, only the authentication identity (authcid) as specified by the username will be sent to the server, along with the password. The server will derive the authzid from the authcid when not provided, which it will then use internally. | |
CURLOPT_SERVICE_NAME |
認証サービス名 | cURL 7.43.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
32 桁の十六進文字列。この文字列は、リモートホストの公開鍵の MD5 チェックサムでなければなりません。 md5sum がマッチしない限り、libcurl はホストとの接続を拒否します。 このオプションは、SCP および SFTP でのみ有効です。 | cURL 7.17.1 で追加されました。 |
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 |
Base64-encoded SHA256 hash of the remote host's public key. The transfer will fail if the given hash does not match the hash the remote host provides. | |
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_SSL_EC_CURVES |
A colon delimited list of elliptic curve algorithms. For example,
X25519:P-521 is a valid list of two elliptic curves.
This option defines the client's key exchange algorithms in the SSL handshake,
if the SSL backend cURL is built to use supports it.
|
|
CURLOPT_SSLCERT |
PEM フォーマットの証明書を含むファイルの名前。 | |
CURLOPT_SSLCERTPASSWD |
CURLOPT_SSLCERT
証明書を使用する際に必要なパスワード。
|
|
CURLOPT_SSLCERTTYPE |
証明書の形式。サポートされるフォーマットは
"PEM" (デフォルト)、"DER"
および "ENG" です。
OpenSSL 0.9.3 以降では、
"P12" (PKCS#12 でエンコードされたファイル) もサポートしています。
|
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_TLS13_CIPHERS |
TLS 1.3 接続を確立するために使う暗号スイートの一覧。
この一覧はひとつ以上の暗号スイートの文字列がコロンで区切られており、
構文的に正しくなければなりません。
このオプションは現状、OpenSSL 1.1.1 以降でcurlがビルドされている場合にだけ使われています。
他のSSLバックエンドを使っている場合、
CURLOPT_SSL_CIPHER_LIST を使うと TLS 1.3 の暗号スイートを設定できます。
|
PHP 7.3.0 以降 および cURL >= 7.61.0 と OpenSSL >= 1.1.1 をビルドした場合に使用可能です。 |
CURLOPT_UNIX_SOCKET_PATH |
接続のエンドポイントとして Unixドメインソケットの利用を有効にし、 ドメインソケットのパスを与えられた string として設定します。 | cURL 7.40.0 で追加されました。 PHP 7.0.7 以降で利用可能です。 |
CURLOPT_URL |
取得する URL 。curl_init() でセッションを 初期化する際に指定することも可能です。 | |
CURLOPT_USERAGENT |
HTTP リクエストで使用される "User-Agent: "
ヘッダの内容。
|
|
CURLOPT_USERNAME |
認証に使うユーザー名 | cURL 7.19.1 で追加されました。 |
CURLOPT_PASSWORD |
認証に使うパスワード | cURL 7.19.1 で追加されました。 |
CURLOPT_USERPWD |
接続に使用するユーザー名とパスワード。
"[username]:[password]" 形式で指定します。
|
|
CURLOPT_XOAUTH2_BEARER |
OAuth 2.0 のアクセストークンを指定します。 | cURL 7.33.0 で追加されました。PHP 7.0.7 以降で利用可能です。 |
value
には、
option
の以下の値に関して
配列を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_CONNECT_TO |
URL で指定されたホストとポートのかわりに接続する、
特定のホストとポート。
HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT
というフォーマット文字列の配列を受け入れます。
|
cURL 7.49.0 で追加されました。 PHP 7.0.7 以降で利用可能です。 |
CURLOPT_HTTP200ALIASES |
エラーではなく正常な応答として扱われる、HTTP 200 レスポンスの配列。 | cURL 7.10.3 で追加されました。 |
CURLOPT_HTTPHEADER |
設定する HTTP ヘッダフィールドの配列。
array('Content-type: text/plain', 'Content-length: 100')
形式。
|
|
CURLOPT_POSTQUOTE |
FTP リクエストの実行後に、サーバー上で実行する FTP コマンドの配列。 | |
CURLOPT_PROXYHEADER |
プロキシに渡すカスタムHTTPヘッダの配列 | cURL 7.37.0 で追加されました。 PHP 7.0.7 以降で利用可能です。 |
CURLOPT_QUOTE |
FTP リクエストの前にサーバー上で実行する FTP コマンドの配列。 | |
CURLOPT_RESOLVE |
特定のホストとポートのペアのための、カスタムアドレスを指定します。
ホスト名、ポート、そして IP アドレスの文字列の配列です。
それぞれの要素はコロンで区切る必要があります。
以下のようなフォーマットになります:
array("example.com:80:127.0.0.1")
|
cURL 7.21.3 で追加されました。 |
value
はストリームリソース(例えば
fopen() が作成するもの)であり、以下の
option
パラメータに設定します。
オプション | value に設定する内容 |
|
---|---|---|
CURLOPT_FILE |
転送内容が書き込まれるファイル。デフォルトは STDOUT
(ブラウザウィンドウ)。
|
|
CURLOPT_INFILE |
アップロード時に転送内容を読み込むファイル。 | |
CURLOPT_STDERR |
STDERR の代わりにエラーを出力する場所。
|
|
CURLOPT_WRITEHEADER |
転送のヘッダ部分が書き込まれるファイル。 |
value
には、
option
の以下の値に関して
有効な関数あるいはクロージャの名前を指定する必要があります。
オプション | value への設定値 |
備考 |
---|---|---|
CURLOPT_HEADERFUNCTION |
二つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目は書き込む ヘッダデータの文字列です。このコールバック関数を使用するにあたり、 ヘッダデータを書き込む処理を実装するのはあなたの役目となります。 書き込んだデータのバイト数を返します。 | |
CURLOPT_PASSWDFUNCTION |
三つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目はパスワード プロンプトの文字列、そして 3 番目はパスワードの最大長です。 入力されたパスワードを文字列で返します。 | PHP 7.3.0 で削除されました。 |
CURLOPT_PROGRESSFUNCTION |
五つのパラメータをとるコールバック。 最初のパラメータは cURL 利ソールで、2 番目はこの転送でダウンロードしようとしている総バイト数、 3 番目はこれまでにダウンロードしたバイト数、4 番目はこの転送でアップロードしようとしている総バイト数、 そして 5 番目はこれまでにアップロードしたバイト数です。
ゼロ以外の値を返すと、転送を強制終了できます。このとき、この転送にはエラー
|
|
CURLOPT_READFUNCTION |
三つのパラメータをとるコールバック。
最初のパラメータは CURL リソースで、2 番目は
CURLOPT_INFILE で cURL に渡したストリームリソース、
そして最後が読み込むデータの最大量です。
コールバックは、要求したデータ量以下の長さの文字列を返さなければなりません。
一般的には、渡されたストリームリソースから読み込んだデータを返します。
EOF を伝えるには空文字列を返さなければなりません。
|
|
CURLOPT_WRITEFUNCTION |
二つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目は書き込む データの文字列です。データの保存には、 このコールバック関数を使わなければなりません。 書き込んだデータの正確なバイト数を返す必要があります。 返さなければ、エラーで転送が異常終了します。 | |
CURLOPT_XFERINFOFUNCTION |
二つのパラメータをとるコールバック。
CURLOPT_PROGRESSFUNCTION
と目的は似ていますが、
cURL の観点からはこちらの方がモダンで、好ましいオプションです。
|
cURL 7.32.0 で追加されました。 PHP 8.2.0 以降で利用可能です。 |
その他の値
オプション | value への設定値 |
---|---|
CURLOPT_SHARE |
curl_share_init() の結果。 この cURL ハンドルに、共有ハンドルからのデータを使わせるようにします。 |
成功した場合に true
を、失敗した場合に false
を返します。
バージョン | 説明 |
---|---|
8.0.0 |
handle は CurlHandle クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、resource を期待していました。
|
7.3.15, 7.4.3 |
CURLOPT_HTTP09_ALLOWED が追加されました。
|
7.3.0 |
CURLOPT_ABSTRACT_UNIX_SOCKET , CURLOPT_KEEP_SENDING_ON_ERROR ,
CURLOPT_PRE_PROXY , CURLOPT_PROXY_CAINFO ,
CURLOPT_PROXY_CAPATH , CURLOPT_PROXY_CRLFILE ,
CURLOPT_PROXY_KEYPASSWD , CURLOPT_PROXY_PINNEDPUBLICKEY ,
CURLOPT_PROXY_SSLCERT , CURLOPT_PROXY_SSLCERTTYPE ,
CURLOPT_PROXY_SSL_CIPHER_LIST , CURLOPT_PROXY_SSLKEY ,
CURLOPT_PROXY_SSLKEYTYPE , CURLOPT_PROXY_SSL_OPTIONS ,
CURLOPT_PROXY_SSL_VERIFYHOST , CURLOPT_PROXY_SSL_VERIFYPEER ,
CURLOPT_PROXY_SSLVERSION , CURLOPT_PROXY_TLSAUTH_PASSWORD ,
CURLOPT_PROXY_TLSAUTH_TYPE , CURLOPT_PROXY_TLSAUTH_USERNAME ,
CURLOPT_SOCKS5_AUTH , CURLOPT_SUPPRESS_CONNECT_HEADERS ,
CURLOPT_DISALLOW_USERNAME_IN_URL , CURLOPT_DNS_SHUFFLE_ADDRESSES ,
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS , CURLOPT_HAPROXYPROTOCOL ,
CURLOPT_PROXY_TLS13_CIPHERS , CURLOPT_SSH_COMPRESSION ,
CURLOPT_TIMEVALUE_LARGE および CURLOPT_TLS13_CIPHERS が追加されました。
|
7.0.7 |
CURL_HTTP_VERSION_2 , CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE ,
CURL_HTTP_VERSION_2TLS , CURL_REDIR_POST_301 ,
CURL_REDIR_POST_302 , CURL_REDIR_POST_303 ,
CURL_REDIR_POST_ALL , CURL_VERSION_KERBEROS5 ,
CURL_VERSION_PSL , CURL_VERSION_UNIX_SOCKETS ,
CURLAUTH_NEGOTIATE , CURLAUTH_NTLM_WB ,
CURLFTP_CREATE_DIR , CURLFTP_CREATE_DIR_NONE ,
CURLFTP_CREATE_DIR_RETRY , CURLHEADER_SEPARATE ,
CURLHEADER_UNIFIED , CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE ,
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE , CURLMOPT_MAX_HOST_CONNECTIONS ,
CURLMOPT_MAX_PIPELINE_LENGTH , CURLMOPT_MAX_TOTAL_CONNECTIONS ,
CURLOPT_CONNECT_TO , CURLOPT_DEFAULT_PROTOCOL ,
CURLOPT_DNS_INTERFACE , CURLOPT_DNS_LOCAL_IP4 ,
CURLOPT_DNS_LOCAL_IP6 , CURLOPT_EXPECT_100_TIMEOUT_MS ,
CURLOPT_HEADEROPT , CURLOPT_LOGIN_OPTIONS ,
CURLOPT_PATH_AS_IS , CURLOPT_PINNEDPUBLICKEY ,
CURLOPT_PIPEWAIT , CURLOPT_PROXY_SERVICE_NAME ,
CURLOPT_PROXYHEADER , CURLOPT_SASL_IR ,
CURLOPT_SERVICE_NAME , CURLOPT_SSL_ENABLE_ALPN ,
CURLOPT_SSL_ENABLE_NPN , CURLOPT_SSL_FALSESTART ,
CURLOPT_SSL_VERIFYSTATUS , CURLOPT_STREAM_WEIGHT ,
CURLOPT_TCP_FASTOPEN , CURLOPT_TFTP_NO_OPTIONS ,
CURLOPT_UNIX_SOCKET_PATH , CURLOPT_XOAUTH2_BEARER ,
CURLPROTO_SMB , CURLPROTO_SMBS ,
CURLPROXY_HTTP_1_0 , CURLSSH_AUTH_AGENT ,
CURLSSLOPT_NO_REVOKE
が追加されました。
|
例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);
?>
注意:
配列を
CURLOPT_POSTFIELDS
に渡すと、データを multipart/form-data でエンコードします。 一方 URL エンコードされた文字列を渡すと、データを application/x-www-form-urlencoded でエンコードします。