curl_setopt
(PHP 4 >= 4.0.2, PHP 5, PHP 7)
curl_setopt — cURL 転送用オプションを設定する
説明
curl_setopt
( CurlHandle $handle
, int $option
, mixed $value
) : bool
指定した cURL セッションハンドルのオプションを設定します。
パラメータ
handle
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_CONNECT_ONLY
true
を設定すると、プロキシの認証や接続の確立などをすべて行いますが、データは転送しません。このオプションは、HTTP や SMTP そして POP3 用に実装されています。
7.15.2 で追加されました。 PHP 5.5.0 以降で使用可能です。
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
が指定されていない限り、送ってくる"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_TCP_NODELAY
true
にすると、TCP の Nagle アルゴリズムを解除します。解除すると、小さなパケットがネットワーク上を流れる回数をできるだけ減らそうと試みます。PHP 5.2.1 以降のバージョンで、libcurl 7.11.2 以降と組み合わせてコンパイルしたときに利用可能です。 CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT
のエイリアスです。CURLOPT_FTPLISTONLY
true
を設定すると、FTP でディレクトリ名のみ表示します。CURLOPT_HEADER
true
を設定すると、ヘッダの内容も出力します。CURLINFO_HEADER_OUT
true
を設定すると、リクエスト文字列を追跡します。PHP 5.1.3 以降で使用可能です。プレフィックスが 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 レスポンスボディを取得します。PHP 5.5.0 以降で、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 転送の進捗状況表示を無効にします。注意:
PHP は、このオプションを自動的に
true
に設定します。 これを変更するのは、デバッグ時のみにすべきです。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_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_CLOSEPOLICY
CURLCLOSEPOLICY_*
のいずれかの値。注意:
このオプションは非推奨となりました。cURL で実装されることがなく、指定しても何の効果もありませんでした。
PHP 5.6.0 で削除されました。 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_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 認証方法。以下の中から選びます。
CURLAUTH_BASIC
、CURLAUTH_DIGEST
、CURLAUTH_GSSNEGOTIATE
、CURLAUTH_NTLM
、CURLAUTH_ANY
およびCURLAUTH_ANYSAFE
。2 つ以上の方法を組み合わせるには、ビット演算子
|
(or) を使用します。このような場合、cURL はサーバーがサポートしている方法を 問い合わせたうえで最適な方法を選択します。CURLAUTH_ANY
はCURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
のエイリアスです。CURLAUTH_ANYSAFE
はCURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
のエイリアスです。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_POSTREDIR
CURLOPT_FOLLOWLOCATION
が設定されているときに、どの形式のリダイレクトの場合に HTTP POST メソッドを維持するのかを、 1 (301 Moved Permanently)、2 (302 Found)、4 (303 See Other) のビットマスクで指定します。
cURL 7.19.1 で追加されました。PHP 5.3.2 以降で使用可能です。 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_TFTP
,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_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 認証方法。以下が指定できます:
CURLAUTH_BASIC
,CURLAUTH_GSSAPI
,CURLAUTH_NONE
一つ以上の認証方法を組み合わせるために ビット演算子
|
(or) が使えます。 これを使うと、cURL がどの方法をサポートしているかをポーリングし、もっとも良いものを選択します。CURLAUTH_BASIC
を指定すると、ユーザー名/パスワード による認証ができます。CURLAUTH_GSSAPI
を指定すると、GSS-API 認証ができます。CURLAUTH_NONE
を指定すると、認証は行われません。デフォルトは
CURLAUTH_BASIC|CURLAUTH_GSSAPI
です。 実際のユーザー名とパスワードはCURLOPT_PROXYUSERPWD
オプションを使って設定してください。PHP 7.3.0 以降 および curl >= 7.55.0 で利用可能です。 CURLOPT_SSL_OPTIONS
SSL 関連の振る舞いのオプションを設定します。 以下に示す定数のビットマスクの組み合わせです:
CURLSSLOPT_ALLOW_BEAST
: SSL3 や TLS1.0 プロトコルのセキュリティ上の欠陥を回避するあらゆる手段を使わない。CURLSSLOPT_NO_REVOKE
: 証明書の失効チェックを行うSSLバックエンドについて、それを無効にする。cURL 7.25.0 で追加されました。PHP 7.0.7 以降で利用可能です。 CURLOPT_SSL_VERIFYHOST
1
は SSL ピア証明書に一般名が存在するかどうかを調べます。2
はそれに加え、その名前がホスト名と一致することを検証します。0
は、名前をチェックしません。 本番環境では、このオプションの値は常に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) のいずれかの値。 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
.注意:
この値は何も設定せず、デフォルトに任せるのが最適です。 2 や 3 を設定すると、SSLv2 および SSLv3 の既知の脆弱性の影響を受けるため、非常に危険です。
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
注意:
最も良い選択は、このオプションを設定せず、 デフォルトの
CURL_SSLVERSION_DEFAULT
を使うことです。 このオプションは、リモートのSSLプロトコルのバージョンを見つけようとします。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 で追加されました。PHP 5.5.0 以降で利用可能です。 CURLOPT_TCP_KEEPIDLE
CURLOPT_TCP_KEEPALIVE
が有効になっている場合に、keepalive のプローブを送信する前に、接続をアイドルなままにしてオペレーティングシステムを待たせる 遅延時間を秒単位で設定します。 全てのオペレーティングシステムがこのオプションをサポートしているわけではありません。 デフォルトは
60
です。cURL 7.25.0 で追加されました。PHP 5.5.0 以降で利用可能です。 CURLOPT_TCP_KEEPINTVL
CURLOPT_TCP_KEEPALIVE
が有効になっている場合に、keepalive のプローブを送信する前に、オペレーティングシステムが待つ間隔を秒単位で設定します。 全てのオペレーティングシステムがこのオプションをサポートしているわけではありません。 デフォルトは
60
です。cURL 7.25.0 で追加されました。PHP 5.5.0 以降で利用可能です。 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_TIMEVALUE_LARGE
1970年1月1日からの経過時刻を秒単位で示します。 この値は
CURLOPT_TIMECONDITION
によって使われます。 デフォルトは0です。 このオプションとCURLOPT_TIMEVALUE
の違いは引数の型です。 'long' が 32ビット長しかないシステムでは、 2038年以降の日付を設定するためにこのオプションを使わなければいけません。cURL 7.59.0 で追加されました。PHP 7.3.0 以降で使用可能です。 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 で追加されました。 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_MULTICWD
、CURLFTPMETHOD_NOCWD
およびCURLFTPMETHOD_SINGLECWD
です。cURL 7.15.1 で追加されました。PHP 5.3.0 以降で使用可能です。 value
は、option
パラメータの 以下の値に関して文字列である必要があります。オプション value
への設定値注記 CURLOPT_ABSTRACT_UNIX_SOCKET
ホストにTCP接続する代わりに、抽象化されたUnixドメインソケットの使用を有効にし、 パスを指定された string に設定します。 このオプションは
CURLOPT_UNIX_SOCKET_PATH
と同じセマンティクスを共有しています。 これらのふたつのオプションは同じストレージを共有するので、 ハンドルごとにそれらのうちのひとつだけを設定できます。cURL 7.53.0 で追加されました。PHP 7.3.0 以降で利用可能です。 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_COOKIELIST
内部的な Cookie ストアに追加するCookie文字列(つまり、NetScape/Mozilla フォーマット または HTTP形式の Set-Cookieヘッダ)。
"ALL"
の場合、メモリに保持している全てのクッキーを削除します。"SESS"
の場合、メモリに保持している全てのセッションクッキーを削除します。"FLUSH"
の場合、CURLOPT_COOKIEJAR
で指定されたファイルに全ての既知の Cooie を書き込みます。"RELOAD"
の場合、CURLOPT_COOKIEFILE
で指定されたファイルから全てのクッキーを読み込みます。PHP 5.5.0 および 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_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 を使って送信することが出来ます。 この場合、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
プロキシ認証サービス名 cURL 7.34.0 で追加されました。PHP 7.0.7 以降で利用可能です。 CURLOPT_PROXY_CAINFO
証明書認証局(CA)バンドルのパス。 HTTPS プロキシを検証するためのひとつ以上の証明書を持つファイル名のパスを string で設定します。 このオプションはHTTPSプロキシに接続するためのもので、 HTTPSサーバに接続するためのものではありません。 デフォルトでは、libcurl の cacert バンドルが保存されていると想定されている システムパスが設定されます。
PHP 7.3.0 以降 および cURL >= 7.52.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" がサポートされています。
注意:
TLS の Secure Remote Password (SRP) 認証は、 ローカルとリモートの双方が共通のシークレットを持っている場合に、 お互いを認証する方法を提供します。 TLS-SRP を使うためには、
CURLOPT_PROXY_TLSAUTH_USERNAME
とCURLOPT_PROXY_TLSAUTH_PASSWORD
オプションも設定する必要があります。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_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_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"
です。 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 秘密鍵を 使用するために必要なパスワード。注意:
このオプションには重要なパスワードが含まれます。PHP スクリプトを 安全な状態におくことを忘れないでください。
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 で追加されました。PHP 5.5.0 以降で利用可能です。 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 で追加されました。 PHP 5.5.0 以降で利用可能です。
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 番目はパスワードの最大長です。 入力されたパスワードを文字列で返します。
CURLOPT_PROGRESSFUNCTION
五つのパラメータをとるコールバック。 最初のパラメータは cURL 利ソールで、2 番目はこの転送でダウンロードしようとしている総バイト数、 3 番目はこれまでにダウンロードしたバイト数、4 番目はこの転送でアップロードしようとしている総バイト数、 そして 5 番目はこれまでにアップロードしたバイト数です。
注意:
このコールバックが呼ばれるのは、
CURLOPT_NOPROGRESS
がfalse
の場合だけです。ゼロ以外の値を返すと、転送を強制終了できます。このとき、この転送にはエラー
CURLE_ABORTED_BY_CALLBACK
が設定されます。CURLOPT_READFUNCTION
三つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目は
CURLOPT_INFILE
で cURL に渡したストリームリソース、 そして最後が読み込むデータの最大量です。 コールバックは、要求したデータ量以下の長さの文字列を返さなければなりません。 一般的には、渡されたストリームリソースから読み込んだデータを返します。EOF
を伝えるには空文字列を返さなければなりません。CURLOPT_WRITEFUNCTION
二つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目は書き込む データの文字列です。データの保存には、 このコールバック関数を使わなければなりません。 書き込んだデータの正確なバイト数を返す必要があります。 返さなければ、エラーで転送が異常終了します。
その他の値
オプション 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 ,
|
7.0.7 | CURL_HTTP_VERSION_2 , CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE ,
|
例
例1 新規に cURL セッションを初期化、ウェブページを取得する
<?php// 新しい cURL リソースを作成します$ch = curl_init();// URL その他のオプションを適切に設定しますcurl_setopt($ch, CURLOPT_URL, "http://www.example.com/%22);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 でエンコードします。