curl_setopt
-
CURLOPT_ABSTRACT_UNIX_SOCKET
(int)
-
ホストへの TCP 接続を確立する代わりに抽象 Unix ドメインソケットを使うようにし、
そのパスを指定した string へと設定します。
このオプションの使い方は CURLOPT_UNIX_SOCKET_PATH と同じです。
これら 2 つのオプションは値を保持する領域を共有しているため、
ハンドルごとに設定できるのはいずれか 1 つだけです。
PHP 7.3.0 以降かつ cURL 7.53.0 以降で利用可能です。
-
CURLOPT_ACCEPT_ENCODING
(int)
-
HTTP リクエストの中で送られる Accept-Encoding: ヘッダーの内容を
string で指定します。
null をセットすると、Accept-Encoding: ヘッダーの送信を無効にします。
デフォルト値は null です。
cURL 7.21.6 以降で利用可能です。
-
CURLOPT_ACCEPTTIMEOUT_MS
(int)
-
アクティブな FTP 接続を使用している場合に、
cURL がサーバーからの接続を待機する最大ミリ秒数を指定します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 60000 ミリ秒です。
cURL 7.24.0 以降で利用可能です。
-
CURLOPT_ADDRESS_SCOPE
(int)
-
IPv6 アドレスに接続する際に使用するスコープ ID の値を指定します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 0 です。
cURL 7.19.0 以降で利用可能です。
-
CURLOPT_ALTSVC
(int)
-
cURL が Alt-Svc のキャッシュファイルとして使用するファイルの名前を string で指定します。
既存のキャッシュ内容をこのファイルから読み込んだり、転送後にキャッシュをこのファイルへ書き戻したりできます。
ただし、CURLOPT_ALTSVC_CTRL に CURLALTSVC_READONLYFILE が指定されている場合、
書き込みはできません。
PHP 8.2.0 以降かつ cURL 7.64.1 以降で利用可能です。
-
CURLOPT_ALTSVC_CTRL
(int)
-
このハンドルを使う転送において、cURL が Alt-Svc をどう処理するかを指示するために、
適切な機能セットのビットマスクを設定します。cURL は HTTPS 経由でのみ Alt-Svc ヘッダーを受け付けます。
また、代替オリジンが HTTPS で適切にホストされている場合にのみ、代替オリジンへのリクエストを最後まで実行します。
いずれかのビットを設定すると alt-svc エンジンが有効になります。
CURLALTSVC_* 定数のいずれかを設定します。
デフォルトでは Alt-Svc 処理は無効です。
PHP 8.2.0 以降かつ cURL 7.64.1 以降で利用可能です。
-
CURLOPT_APPEND
(int)
-
このオプションを 1 に設定すると、FTP アップロード時に
リモートファイルを上書きするのではなく、末尾に追加するようになります。
デフォルト値は 0 です。
cURL 7.17.0 以降で利用可能です。
-
CURLOPT_AUTOREFERER
(int)
-
true を指定すると、リクエストが Location: のリダイレクトによるものである場合、
自動的に Referer: ヘッダーを設定します。
デフォルト値は 0 です。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_AWS_SIGV4
(int)
-
AWS V4 署名認証を HTTP(S) ヘッダーに string として指定します。
このオプションは、CURLOPT_HTTPAUTH で設定された
他の認証方法を上書きします。これと他の認証方法を組み合わせることはできません。
PHP 8.2.0 以降かつ cURL 7.75.0 以降で利用可能です。
-
CURLOPT_BINARYTRANSFER
(int)
-
この定数は PHP 5.5.0 以降は用いられていません。
PHP 8.4.0 以降は非推奨となっています。
-
CURLOPT_BUFFERSIZE
(int)
-
各読込で使用するバッファサイズを設定します。
ただし、必ずしも指定した値が使われるとは限りません。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は CURL_MAX_WRITE_SIZE (現在は 16kB) です。
cURL 7.10 以降で利用可能です。
-
CURLOPT_CAINFO
(int)
-
相手を検証するための証明書を格納したファイル名を string で指定します。
このオプションは、CURLOPT_SSL_VERIFYPEER と組み合わせて用いた場合のみ意味を持ちます。
絶対パスを指定する必要があるかもしれません。
cURL 7.4.2 以降で利用可能です。
-
CURLOPT_CAINFO_BLOB
(int)
-
相手を検証するための証明書を格納した PEM ファイル名を string で指定します。
このオプションは CURLOPT_CAINFO を上書きします。
PHP 8.2.0 以降かつ cURL 7.77.0 以降で利用可能です。
-
CURLOPT_CAPATH
(int)
-
CA 証明書を格納したディレクトリを string で指定します。
CURLOPT_SSL_VERIFYPEER と一緒に使用してください。
cURL 7.9.8 以降で利用可能です。
-
CURLOPT_CA_CACHE_TIMEOUT
(int)
-
CA 証明書ストアのインメモリキャッシュが保持され、新しい接続に再利用される
最大時間を秒単位で指定します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 86400 (24 時間) です。
PHP 8.3.0 以降かつ cURL 7.87.0 以降で利用可能です。
-
CURLOPT_CERTINFO
(int)
-
true に設定すると、暗号化された通信の際に
SSL 認証情報を STDERR へ出力します。
CURLOPT_VERBOSE を有効にしている場合にのみ効果があります。
デフォルト値は false です。
cURL 7.19.1 以降で利用可能です。
-
CURLOPT_CONNECTTIMEOUT
(int)
-
接続するまでの最大待機秒数を指定します。
0 を指定するといつまでも待機します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 300 です。
cURL 7.7.0 以降で利用可能です。
-
CURLOPT_CONNECTTIMEOUT_MS
(int)
-
接続するまでの最大待機ミリ秒数を指定します。
0 を指定するといつまでも待機します。
cURL がシステム標準のネームリゾルバを使うようにビルドされている場合、
接続のその部分のタイムアウトは秒精度となり、
指定できる最小の待機時間も 1 秒になります。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 300000 です。
cURL 7.16.2 以降で利用可能です。
-
CURLOPT_CONNECT_ONLY
(int)
-
true を指定すると、必要なプロキシの認証を行って接続を確立するだけで、
データ転送を行わなくなります。このオプションは
HTTP、SMTP、POP3 で実装されています。
デフォルト値は false です。
cURL 7.15.2 以降で利用可能です。
-
CURLOPT_CONNECT_TO
(int)
-
URL のホストとポートの代わりに、指定したホストとポートに接続します。
HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT の形式の
string を array で受け付けます。
PHP 7.0.7 以降かつ cURL 7.49.0 以降で利用可能です。
-
CURLOPT_COOKIE
(int)
-
HTTP リクエストの中で使われる Cookie: ヘッダーの内容を string で指定します。
複数のクッキーを指定する場合はセミコロンとスペースで区切ります (例: fruit=apple; colour=red)。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_COOKIEFILE
(int)
-
クッキーデータを格納したファイル名を string で指定します。
クッキーファイルは Netscape 形式か、通常の HTTP スタイルのヘッダーをそのままファイルにダンプしたものです。
ファイル名が空の string の場合、クッキーは読み込まれませんが、クッキーの処理は
行われます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_COOKIEJAR
(int)
-
cURL が保持しているすべてのクッキーを保存するファイル名を string で指定します。
書込は cURL ハンドルが破棄されたときに行われます。
cURL 7.9.0 以降で利用可能です。
警告
PHP 8.0.0 以降、curl_close は
何もしなくなり、ハンドルを破棄 しなく なりました。
ハンドラが自動的に破棄されるよりも前にクッキーを書き出す必要がある場合、
curl_setopt($ch, CURLOPT_COOKIELIST, "FLUSH"); を実行してください。
-
CURLOPT_COOKIELIST
(int)
-
string で指定されたクッキーを内部のクッキーストアに追加します。
この文字列は Nescape/Mozilla 形式の単一行、または通常の HTTP スタイルの Set-Cookie ヘッダーです。
-
ALL
はメモリ上に保持されているすべてのクッキーを削除し、
-
SESS
はメモリ上に保持されているすべてのセッションクッキーを削除し、
-
FLUSH
は CURLOPT_COOKIEJAR で指定されたファイルにすべてのクッキーを書き出し、
-
RELOAD
は CURLOPT_COOKIEFILE で指定されたファイルからすべてのクッキーを読み込みます
。
cURL 7.14.1 以降で利用可能です。
-
CURLOPT_COOKIESESSION
(int)
-
true を指定すると、現在の接続を新しいクッキーの「セッション」とみなします。
これにより、cURL は以前のセッションから読み込まれる「セッションクッキー」をすべて無視するようになります。
デフォルトでは、cURL はセッションクッキーかどうかに関わらず、
すべてのクッキーを常に保存し読み込みます。
セッションクッキーは、有効期限がなく
この「セッション」中でのみ有効であることが意図されたクッキーです。
cURL 7.9.7 以降で利用可能です。
-
CURLOPT_CRLF
(int)
-
true を指定すると、Unix の改行コードを CRLF 改行コードに変換して
送ります。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_CRLFILE
(int)
-
SSL 交換中の証明書検証で使用する CRL (Certificate Revocation List; 証明書失効リスト) (PEM 形式) を
記載したファイルの名前を string で指定します。
cURL が GnuTLS を使うようにビルドされている場合、
渡した CRL が検証処理でどう使われるかを制御することはできません。
cURL が OpenSSL を使うようにビルドされている場合、
X509_V_FLAG_CRL_CHECK と
X509_V_FLAG_CRL_CHECK_ALL の両方が設定され、
CRL ファイルを渡したなら証明書チェーンの全要素に対して CRL のチェックが必要になります。
また、CURLOPT_CRLFILE は OpenSSL のバグのため、
cURL 7.71.0 以降では CURLSSLOPT_NO_PARTIALCHAIN を暗示することに注意してください。
cURL 7.19.0 以降で利用可能です。
-
CURLOPT_CUSTOMREQUEST
(int)
-
HTTP リクエストを送る際、GET や HEAD
の代わりに用いるカスタムのリクエストメソッドを指定します。
DELETE や、その他マイナーな HTTP リクエストを送りたいときに便利です。
有効な値は、GET、POST、
CONNECT などといったものです。
つまり、ここに完全な HTTP のリクエスト行を入れてはいけません。
例えば、GET /index.html HTTP/1.0\r\n\r\n を
入れるのは誤りです。
このオプションは string ないし null を受け取ります。
cURL 7.1.0 以降で利用可能です。
注意:
サーバーがそのカスタムリクエストメソッドをサポートしていることを確かめるまでは
使わないでください。
-
CURLOPT_DEFAULT_PROTOCOL
(int)
-
URL がスキーム名を持たない場合に使用するデフォルトのプロトコルを string で指定します。
PHP 7.0.7 以降かつ cURL 7.45.0 以降で利用可能です。
-
CURLOPT_DIRLISTONLY
(int)
-
このオプションに 1 を設定すると、
使っているプロトコルによって異なる動作をします。
FTP および SFTP ベースの URL では、ディレクトリ内のファイル名のみを列挙します。
POP3 では、POP3 サーバー上の電子メールメッセージを列挙します。
FILE に対してこのオプションは効果がありません。
このモードではディレクトリは常に列挙されるからです。
このオプションを CURLOPT_WILDCARDMATCH と一緒に使うと、
後者の効果がなくなります。
デフォルト値は 0 です。
cURL 7.17.0 以降で利用可能です。
-
CURLOPT_DISALLOW_USERNAME_IN_URL
(int)
-
true を指定すると、URL にユーザー名を含められなくなります。
デフォルトではユーザー名を含められます。
PHP 7.3.0 以降かつ cURL 7.61.0 以降で利用可能です。
-
CURLOPT_DNS_CACHE_TIMEOUT
(int)
-
DNS のエントリーをメモリ上に保持する秒数を指定します。
このオプションは、デフォルトで 120 (2分) に設定されています。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.9.3 以降で利用可能です。
-
CURLOPT_DNS_INTERFACE
(int)
-
DNS リゾルバがバインドされているネットワークインターフェース名を指定します。
アドレスではなくインターフェース名を指定する必要があります。
このオプションは string ないし null を受け取ります。
PHP 7.0.7 以降かつ cURL 7.33.0 以降で利用可能です。
-
CURLOPT_DNS_LOCAL_IP4
(int)
-
リゾルバがバインドされているローカル IPv4 アドレスを指定します。
この引数は単一の数値 IPv4 アドレスを含んでいる必要があります。
このオプションは string ないし null を受け取ります。
PHP 7.0.7 以降かつ cURL 7.33.0 以降で利用可能です。
-
CURLOPT_DNS_LOCAL_IP6
(int)
-
リゾルバがバインドされているローカル IPv5 アドレスを指定します。
この引数は単一の数値 IPv6 アドレスを含んでいる必要があります。
このオプションは string ないし null を受け取ります。
PHP 7.0.7 以降かつ cURL 7.33.0 以降で利用可能です。
-
CURLOPT_DNS_SERVERS
(int)
-
システムのデフォルト DNS サーバーの代わりに使用する DNS サーバーのリストを
コンマ区切りの string で指定します
(例: 192.168.1.100,192.168.1.101:8080)。
cURL 7.24.0 以降で利用可能です。
-
CURLOPT_DNS_SHUFFLE_ADDRESSES
(int)
-
true を指定すると、ドメイン名が複数の IP アドレスへと解決されたとき、
アドレスをランダムな順番で使うために、返却されるアドレスの順序がシャッフルされます。
IPv4 が IPv6 より優先して使われたり、あるいはその逆になったりする可能性があります。
PHP 7.3.0 以降かつ cURL 7.60.0 以降で利用可能です。
-
CURLOPT_DNS_USE_GLOBAL_CACHE
(int)
-
true を指定すると、グローバル DNS キャッシュを使うようになります。
このオプションはスレッドセーフではありません。
PHP がシングルスレッド用にビルドされている場合 (CLI、FCGI、Apache2-Prefork 等) に、
条件付きでデフォルトで有効化されます。
cURL 7.9.3 以降で利用可能ですが、cURL 7.11.1 以降は非推奨となりました。
PHP 8.4 以降は、このオプションを指定しても何も起きなくなりました。
-
CURLOPT_DOH_SSL_VERIFYHOST
(int)
-
2 を指定すると、DNS-over-HTTPS サーバーの SSL 証明書の名前フィールドをホスト名に対して検証します。
PHP 8.2.0 以降かつ cURL 7.76.0 以降で利用可能です。
-
CURLOPT_DOH_SSL_VERIFYPEER
(int)
-
1 を指定すると、DNS-over-HTTPS サーバーの SSL 証明書の真正性を検証します。
0 を指定すると検証を無効化します。
PHP 8.2.0 以降かつ cURL 7.76.0 以降で利用可能です。
-
CURLOPT_DOH_SSL_VERIFYSTATUS
(int)
-
1 を指定すると、DNS-over-HTTPS サーバーの証明書のステータスを
TLS 拡張の「証明書ステータス要求」(OCSP stapling) を使って検証します。
0 を指定すると検証を無効化します。
PHP 8.2.0 以降かつ cURL 7.76.0 以降で利用可能です。
-
CURLOPT_DOH_URL
(int)
-
DNS-over-HTTPS の URL を指定します。
このオプションは string ないし null を受け取ります。
PHP 8.1.0 以降かつ cURL 7.62.0 以降で利用可能です。
-
CURLOPT_EGDSOCKET
(int)
-
CURLOPT_RANDOM_FILE と似ていますが、
Entropy Gathering Daemon ソケットのファイル名を指定します。
cURL 7.7.0 以降で利用可能ですが、cURL 7.84.0 以降は非推奨となりました。
-
CURLOPT_ENCODING
(int)
-
Accept-Encoding: ヘッダーの内容を string で指定します。
これを指定するとレスポンスをデコードするようになります。サポートされているエンコーディングは、
です。
空の string を指定すると、
サポートされている全エンコーディングタイプを含んだヘッダーが送られます。
cURL 7.10 以降で利用可能ですが、cURL 7.21.6 以降は非推奨となりました。
-
CURLOPT_EXPECT_100_TIMEOUT_MS
(int)
-
Expect: 100-continue レスポンスのタイムアウトをミリ秒で指定します。
デフォルト値は 1000 ミリ秒です。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
PHP 7.0.7 以降かつ cURL 7.36.0 以降で利用可能です。
-
CURLOPT_FAILONERROR
(int)
-
true を指定すると、返された HTTP コードが 400 以上だったときにエラー情報と共に失敗するようになります。
デフォルトの挙動では、コードを無視して通常どおりページを返します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_FILE
(int)
-
転送データを書き込むファイルのファイルハンドル resource を受け取ります。
デフォルトは STDOUT (ブラウザウィンドウ) です。
cURL 7.1.0 以降で利用可能ですが、cURL 7.9.7 以降は非推奨となりました。
-
CURLOPT_FILETIME
(int)
-
true を指定すると、リモートのドキュメントの更新日時を取得しようとします。
その値は、curl_getinfo に
CURLINFO_FILETIME オプションを使うことで取得できます。
cURL 7.5.0 以降で利用可能です。
-
CURLOPT_FNMATCH_FUNCTION
(int)
-
ワイルドカードのマッチングに用いられる callable を渡します。
コールバックのシグニチャは以下のとおりです。
int callback(resource $curlHandle, string $pattern, string $string)
-
curlHandle
-
cURL ハンドル。
-
pattern
-
ワイルドカードパターン。
-
string
-
ワイルドカードパターンとマッチしているか判定する string。
この関数は、パターンが string とマッチしていれば CURL_FNMATCHFUNC_MATCH を、
していなければ CURL_FNMATCHFUNC_NOMATCH を、
エラー時は CURL_FNMATCHFUNC_FAIL を返さなければなりません。
cURL 7.21.0 以降で利用可能です。
-
CURLOPT_FOLLOWLOCATION
(int)
-
true を指定すると、サーバーから HTTP ヘッダーの一部として送られた Location: ヘッダーを
追跡するようになります。
CURLOPT_MAXREDIRS も合わせてご覧ください。
この定数は open_basedir が有効になっていると利用できません。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_FORBID_REUSE
(int)
-
true を指定すると、処理が完了したとき明示的に接続を閉じ、
再利用のためにプールしないようになります。
cURL 7.7.0 以降で利用可能です。
-
CURLOPT_FRESH_CONNECT
(int)
-
true を指定すると、キャッシュされた接続を使う代わりに
必ず新しい接続を用います。
cURL 7.7.0 以降で利用可能です。
-
CURLOPT_FTPAPPEND
(int)
-
true を指定すると、リモートのファイルを上書きするのではなく、
追記するようになります。
cURL 7.1.0 以降で利用可能ですが、cURL 7.16.4 以降は非推奨となりました。
-
CURLOPT_FTPASCII
(int)
-
CURLOPT_TRANSFERTEXT のエイリアスです。そちらを使用してください。
cURL 7.1 以降で利用可能でしたが、cURL 7.11.1 からは非推奨となっており、
最終的に cURL 7.15.5 まで利用可能でした。
PHP 7.3.0 で削除されました。
-
CURLOPT_FTPLISTONLY
(int)
-
FTP ディレクトリの名前のみを列挙するには true を指定します。
cURL 7.1.0 以降で利用可能ですが、cURL 7.16.4 以降は非推奨となりました。
-
CURLOPT_FTPPORT
(int)
-
FTP の PORT 命令で使用する IP アドレスを string で指定します。
PORT 命令は、ここで指定した IP アドレスに接続するようリモートサーバーに指示します。
この string には、単なる IP アドレス、ホスト名、
ネットワークインターフェース名 (Unix で利用可能)、
または - (システムのデフォルト IP アドレスを使用する場合) を指定できます。
このオプションは string ないし null を受け取ります。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_FTPSSLAUTH
(int)
-
FTP over SSL の認証方式 (有効化されている場合) を、
CURLFTPAUTH_* 定数のいずれかに指定します。
デフォルト値は CURLFTPAUTH_DEFAULT です。
cURL 7.12.2 以降で利用可能です。
-
CURLOPT_FTP_ACCOUNT
(int)
-
ユーザー名とパスワードがサーバーに渡された後、
FTP 上で (ACCT コマンドを用いて) アカウント情報として送信される
string を設定します。
null を指定すると、アカウント情報の送信が無効化されます。
デフォルト値は null です。
cURL 7.13.0 以降で利用可能です。
-
CURLOPT_FTP_ALTERNATIVE_TO_USER
(int)
-
USER/PASS ネゴシエーションが失敗した場合に
FTP での認証を試行するのに使われる string を指定します。
cURL 7.15.5 以降で利用可能です。
-
CURLOPT_FTP_CREATE_MISSING_DIRS
(int)
-
true を指定すると、FTP の操作で現在存在しないパスに遭遇した場合に
不足しているディレクトリを作成します。
cURL 7.10.7 以降で利用可能です。
-
CURLOPT_FTP_FILEMETHOD
(int)
-
FTP(S) サーバー上のファイルにアクセスするために使用するメソッドを cURL に指示します。
指定できる値は CURLFTPMETHOD_* 定数のいずれかです。
デフォルト値は CURLFTPMETHOD_MULTICWD です。
cURL 7.15.1 以降で利用可能です。
-
CURLOPT_FTP_RESPONSE_TIMEOUT
(int)
-
FTP サーバーからのレスポンスを待機するタイムアウト秒数を指定します。
このオプションは CURLOPT_TIMEOUT を上書きします。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
このオプション名は PHP 8.4.0 で CURLOPT_SERVER_RESPONSE_TIMEOUT
へ置き換えられました。
cURL 7.10.8 以降で利用可能ですが、cURL 7.85.0 以降は非推奨となりました。
-
CURLOPT_FTP_SKIP_PASV_IP
(int)
-
このオプションを 1 に設定すると、
cURL は PASV コマンドに対する 227 レスポンスでサーバーが提案した IP アドレスを使用せず、
接続に使用した IP アドレスを使うようになります。
227 レスポンスから受信したポート番号は無視されません。
cURL 7.74.0 以降はデフォルト値が 1 で、
それ以前は 0 です。
cURL 7.15.0 以降で利用可能です。
-
CURLOPT_FTP_SSL
(int)
-
cURL 7.11.0 以降で利用可能ですが、cURL 7.16.4 以降は非推奨となりました。
-
CURLOPT_FTP_SSL_CCC
(int)
-
このオプションを指定すると、cURL が CCC (Clear Command Channel) を使うようになり、
認証後に SSL/TLS レイヤーをシャットダウンして、
残りの制御チャネル通信を暗号化しないようになります。
CURLFTPSSL_CCC_* 定数のいずれかを使用してください。
デフォルト値は CURLFTPSSL_CCC_NONE です。
cURL 7.16.1 以降で利用可能です。
-
CURLOPT_FTP_USE_EPRT
(int)
-
true を指定すると、アクティブ FTP ダウンロード時に EPRT (および LPRT) を使用します。
false を指定すると、EPRT と LPRT を無効にし PORT のみを使用します。
cURL 7.10.5 以降で利用可能です。
-
CURLOPT_FTP_USE_EPSV
(int)
-
true を指定すると、FTP 転送で PASV に戻る前にまず EPSV コマンドを試すようになります。
false を指定すると EPSV が無効になります。
cURL 7.9.2 以降で利用可能です。
-
CURLOPT_FTP_USE_PRET
(int)
-
1 を指定すると、PASV (および EPSV) の前に
PRET コマンドを送るようになります。
アクティブ FTP 転送モードを使用している場合効果はありません。
デフォルト値は 0 です。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_GSSAPI_DELEGATION
(int)
-
CURLGSSAPI_DELEGATION_FLAG を指定すると
無条件で GSSAPI 資格情報の委任を許可します。
CURLGSSAPI_DELEGATION_POLICY_FLAG を指定すると
サービスチケットで OK-AS-DELEGATE フラグが設定されている場合のみ委任します。
デフォルト値は CURLGSSAPI_DELEGATION_NONE です。
cURL 7.22.0 以降で利用可能です。
-
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS
(int)
-
Happy Eyeballs アルゴリズムにおいて IPv6 に与えられるハンデを指定します。Happy Eyeballs は
デュアルスタックホストに対して IPv4 と IPv6 の両方のアドレスへ接続を試行し、
このタイムアウトミリ秒の間は IPv6 を優先します。
デフォルト値は CURL_HET_DEFAULT (現在は 200 ミリ秒) です。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
PHP 7.3.0 以降かつ cURL 7.59.0 以降で利用可能です。
-
CURLOPT_HAPROXYPROTOCOL
(int)
-
true を指定すると、HAProxy PROXY プロトコル v1 ヘッダーを接続開始時に送信します。
デフォルトでは送信しません。
PHP 7.3.0 以降かつ cURL 7.60.0 以降で利用可能です。
-
true を指定すると、CURLOPT_WRITEFUNCTION で定義されたコールバックへと渡される出力に
ヘッダーが含まれるようになります。
cURL 7.1.0 以降で利用可能です。
-
以下のシグニチャの callable を指定します。
int callback(resource $curlHandle, string $headerData)
-
curlHandle
-
cURL ハンドル。
-
headerData
-
このコールバックが書き込まなければならないヘッダーデータ。
このコールバックは、書き込んだバイト数を返さなければなりません。
cURL 7.7.2 以降で利用可能です。
-
HTTP ヘッダーをプロキシとホストの両方に送信するか、個別に送信するかを設定します。
指定可能な値は CURLHEADER_* 定数のいずれかです。
cURL 7.42.1 以降のデフォルト値は CURLHEADER_SEPARATE で、
それ以前では CURLHEADER_UNIFIED です。
PHP 7.0.7 以降かつ cURL 7.37.0 以降で利用可能です。
-
CURLOPT_HSTS
(int)
-
HSTS (HTTP Strict Transport Security) のキャッシュファイル名を string で指定します。
null を指定すると、ファイルの読み書きを行わずに HSTS を行うようになり、
HSTS データを読み込むファイルのリストがクリアされます。
PHP 8.2.0 以降かつ cURL 7.74.0 以降で利用可能です。
-
CURLOPT_HSTS_CTRL
(int)
-
CURLHSTS_* 定数で定義された
HSTS (HTTP Strict Transport Security) 機能のビットマスクを指定できます。
PHP 8.2.0 以降かつ cURL 7.74.0 以降で利用可能です。
-
CURLOPT_HTTP09_ALLOWED
(int)
-
HTTP/0.9 でのレスポンスを許可するかどうかを指定します。cURL 7.66.0 以降のデフォルト値は false です。
それより前のバージョンでは true でした。
PHP 7.3.15 および 7.4.3 以降かつ cURL 7.64.0 以降で利用可能です。
-
CURLOPT_HTTP200ALIASES
(int)
-
エラーではなく有効なレスポンスとして扱われる HTTP 200 レスポンスの array を指定します。
cURL 7.10.3 以降で利用可能です。
-
CURLOPT_HTTPAUTH
(int)
-
使用する HTTP 認証方法のビットマスクです。選択肢は以下のとおりです:
CURLAUTH_BASIC
CURLAUTH_DIGEST
CURLAUTH_GSSNEGOTIATE
CURLAUTH_NTLM
CURLAUTH_AWS_SIGV4
CURLAUTH_ANY
CURLAUTH_ANYSAFE
2つ以上の認証方法を指定した場合、cURL はサーバーがどの認証方法をサポートしているか
問い合わせ、最適なものを選択します。
CURLAUTH_ANY は全ビットをオンにします。cURL は自動的に
最も安全だと思われるものを選択します。
CURLAUTH_ANYSAFE は、CURLAUTH_BASIC を除いた全ビットをオンにします。
cURL は自動的に最も安全だと思われるものを選択します。
cURL 7.10.6 以降で利用可能です。
-
CURLOPT_HTTPGET
(int)
-
true を指定すると、HTTP リクエストのメソッドを GET にリセットします。
デフォルトは GET のため、これが必要なのはリクエストメソッドが変更されていた場合のみです。
cURL 7.8.1 以降で利用可能です。
-
HTTP ヘッダーフィールドの array を指定します。各要素の形式は以下のとおりです。
array('Content-type: text/plain', 'Content-length: 100')
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_HTTPPROXYTUNNEL
(int)
-
true を指定すると、与えられた HTTP プロキシを通すようになります。
cURL 7.3.0 以降で利用可能です。
-
CURLOPT_HTTP_CONTENT_DECODING
(int)
-
false を指定すると、生の HTTP レスポンスボディを取得できます。
cURL 7.16.2 以降で利用可能です。
-
CURLOPT_HTTP_TRANSFER_DECODING
(int)
-
0 を指定するとチャンク転送デコード処理を無効にします。
1 を指定するとチャンク転送デコード処理を有効にします。
このオプションを 0 に設定しない限り、
cURL はチャンク転送デコード処理をデフォルトで実行します。
デフォルト値は 1 です。
cURL 7.16.2 以降で利用可能です。
-
CURLOPT_HTTP_VERSION
(int)
-
CURL_HTTP_VERSION_* 定数のいずれかを指定することで、
cURL に指定した HTTP バージョンを使わせることができます。
cURL 7.9.1 以降で利用可能です。
-
CURLOPT_IGNORE_CONTENT_LENGTH
(int)
-
1 に設定すると、
HTTP レスポンスの Content-Length ヘッダーを無視します。
FTP 転送の際には、それを要求したりそれに依存したりしなくなります。
デフォルト値は 0 です。
cURL 7.14.1 以降で利用可能です。
-
CURLOPT_INFILE
(int)
-
アップロード時に読み込まれるファイルの
ファイルハンドル resource を指定します。
cURL 7.1.0 以降で利用可能ですが、cURL 7.9.7 以降は非推奨となりました。
代わりに CURLOPT_READDATA を使用してください。
-
CURLOPT_INFILESIZE
(int)
-
リモートサイトにファイルをアップロードする際のファイルの予想サイズ (バイト単位) を指定します。
このオプションを使用しても、cURL がより多くのデータを送信する可能性はあります。
実際に送信される内容は
CURLOPT_READFUNCTION に依存します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_INTERFACE
(int)
-
使用する送信ネットワークインターフェースの名前を string で指定します。
インターフェース名、IP アドレス、ホスト名のいずれかが指定できます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_IPRESOLVE
(int)
-
ホスト名を解決する際に、使用する IP アドレスの種類をアプリケーションが選択できるようにします。
これは、複数の IP バージョンを利用してアドレスを解決するようなホスト名を使う場合のみ意味があります。
CURL_IPRESOLVE_* 定数のいずれかを設定してください。
デフォルト値は CURL_IPRESOLVE_WHATEVER です。
cURL 7.10.8 以降で利用可能です。
-
CURLOPT_ISSUERCERT
(int)
-
PEM 形式の CA 証明書を保持するファイル名を string で指定します。
このオプションが指定されると、ピア証明書に対する追加のチェックが実行され、
発行者が指定した証明書と実際に関連付けられているかどうかを確認します。
チェックの結果を失敗と見なすには、
このオプションを CURLOPT_SSL_VERIFYPEER オプションと組み合わせて使用する必要があります。
cURL 7.19.0 以降で利用可能です。
-
CURLOPT_ISSUERCERT_BLOB
(int)
-
PEM 形式の CA SSL 証明書のバイナリデータが含まれた string を指定します。
これが設定されていると、ピア証明書に対する追加のチェックが実行され、
発行者がこのオプションで提供された証明書に関連付けられたものであることを確認します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_KEEP_SENDING_ON_ERROR
(int)
-
true を指定すると、返された HTTP コードが 300 以上の場合にリクエストボディの送信を継続するようになります。
デフォルトでは、送信を中止し、ストリームないし接続を閉じます。
手動 NTLM 認証に適しています。
ほとんどのアプリケーションではこのオプションは必要ありません。
PHP 7.3.0 以降かつ cURL 7.51.0 以降で利用可能です。
-
CURLOPT_KEYPASSWD
(int)
-
CURLOPT_SSLKEY または CURLOPT_SSH_PRIVATE_KEYFILE の秘密鍵を
使用するにあたって必要なパスワードを string で指定します。
null を設定すると、これらのオプションでパスワードが使えなくなります。
cURL 7.17.0 以降で利用可能です。
-
CURLOPT_KRB4LEVEL
(int)
-
KRB4 (Kerberos 4) のセキュリティレベルを指定します。以下の string 値のいずれか
(最弱から最強の順) が有効です:
clear
safe
confidential
private
指定した string がいずれにも一致しない場合、
private が使われます。このオプションを null に設定すると
KRB4 セキュリティが無効になります。現在、KRB4 セキュリティは
FTP トランザクションでのみ動作します。
cURL 7.3.0 以降で利用可能ですが、cURL 7.17.0 以降は非推奨となりました。
-
CURLOPT_KRBLEVEL
(int)
-
FTP の Kerberos セキュリティレベルを設定し、Kerberos に対応させます。
以下の string のいずれかを設定する必要があります:
clear
safe
confidential
private
指定された string がいずれにも一致しない場合、
private が使われます。
このオプションを null に設定すると、FTP の Kerberos サポートが無効になります。
デフォルト値は null です。
cURL 7.16.4 以降で利用可能です。
-
CURLOPT_LOCALPORT
(int)
-
接続に用いるソケットのローカルポート番号を指定します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 0 です。
cURL 7.15.2 以降で利用可能です。
-
CURLOPT_LOCALPORTRANGE
(int)
-
cURL が動作するローカルポート番号を探す試行回数を指定します。
検索は CURLOPT_LOCALPORT で設定されたポートから開始されます。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 1 です。
cURL 7.15.2 以降で利用可能です。
-
CURLOPT_LOGIN_OPTIONS
(int)
-
AUTH=NTLM や AUTH=* を介した優先認証メカニズムなど、
プロトコル固有のログインオプションを設定します。
CURLOPT_USERNAME オプションと併用すべきです。
PHP 7.0.7 以降かつ cURL 7.34.0 以降で利用可能です。
-
CURLOPT_LOW_SPEED_LIMIT
(int)
-
転送速度がこの値を CURLOPT_LOW_SPEED_TIME 秒間下回っていた場合、
PHP は転送を遅すぎるとみなして中止します。
単位はバイト/秒です。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_LOW_SPEED_TIME
(int)
-
転送速度が CURLOPT_LOW_SPEED_LIMIT の値をここで指定した秒数の間下回っていた場合、
PHP は転送を遅すぎるとみなして中止します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_MAIL_AUTH
(int)
-
別のサーバーにリレーされる送信メッセージの認証アドレス (アイデンティティ) を string で指定します。
アドレスは山括弧 (<>) で囲まずに指定してください。
空の string が使われた場合、RFC 2554 に従って山括弧の組が送信されます。
cURL 7.25.0 以降で利用可能です。
-
CURLOPT_MAIL_FROM
(int)
-
SMTP メール送信時の送信者のメールアドレスを string で指定します。
このメールアドレスは、山括弧 (<>) で囲んで指定する必要があり、
指定されていない場合は自動的に追加されます。
このパラメーターが指定されていない場合、空のアドレスが
SMTP サーバーに送信され、メールが拒否される可能性があります。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_MAIL_RCPT
(int)
-
SMTP メールリクエストでサーバーに渡す受信者を、
string の array で設定します。
それぞれの受信者は、対になった山括弧 (<>) で囲んで指定する必要があります。
最初の文字が山括弧でない場合、
cURL は単一のメールアドレスが渡されたものと仮定し、
そのアドレスを括弧で囲みます。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_MAIL_RCPT_ALLLOWFAILS
(int)
-
1 を指定すると、RCPT TO コマンドが一部の受信者で失敗しても
cURL はそのエラーを無視し、残りの成功した受信者に対して処理を継続します。
すべての受信者でエラーになり、このフラグが指定されている場合、
cURL は SMTP 通信を中止し
最後の RCPT TO コマンドから受け取ったエラーを返します。
cURL 8.2.0 で CURLOPT_MAIL_RCPT_ALLOWFAILS に置き換えられました。
PHP 8.2.0 以降かつ cURL 7.69.0 以降で利用可能です。
cURL 8.2.0 以降は非推奨となっています。
-
CURLOPT_MAXAGE_CONN
(int)
-
既存の接続が再利用される可能性のある最大アイドル時間を指定します。
デフォルトの最大アイドル時間は 118 秒です。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
PHP 8.2.0 以降かつ cURL 7.65.0 以降で利用可能です。
-
CURLOPT_MAXCONNECTS
(int)
-
永続化された接続の最大数を指定します。
制限に達すると、開いている接続の数が増えないよう、
キャッシュ内の最も古いものが閉じられます。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.7.0 以降で利用可能です。
-
CURLOPT_MAXFILESIZE
(int)
-
ダウンロードするファイルの最大受入サイズ (バイト単位) を指定します。
リクエストされたファイルがこの値よりも大きいことがわかると、
転送が中止され、CURLE_FILESIZE_EXCEEDED が返されます。
0 を渡すとこのオプションが無効になり、
負のサイズを渡すと CURLE_BAD_FUNCTION_ARGUMENT が返されます。
ダウンロード開始前にファイルサイズがわからない場合、
このオプションは効果がありません。
2GBを超えるサイズ制限を設定するには、
CURLOPT_MAXFILESIZE_LARGE を使用する必要があります。
cURL 8.4.0 以降では、転送中にこの閾値に達した場合にも
進行中の転送を停止します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
デフォルト値は 0 です。
cURL 7.10.8 以降で利用可能です。
-
CURLOPT_MAXFILESIZE_LARGE
(int)
-
ダウンロードが許可される最大ファイルサイズ (バイト単位) です。リクエストされたファイルがこの値よりも大きいことが判明した場合、
転送は開始されず、CURLE_FILESIZE_EXCEEDED が返されます。
ファイルサイズが必ずしもダウンロード前にわかるとは限りません。そのようなファイルに対しては、
ファイル転送が結果的にこの制限よりも大きくなったとしても、このオプションは効果がありません。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
PHP 8.2.0 以降かつ cURL 7.11.0 以降で利用可能です。
-
CURLOPT_MAXLIFETIME_CONN
(int)
-
既存の接続が再利用されうる最大時間を、接続が作成されてからの秒数で指定します。
キャッシュ内にこの値よりも古い接続が見つかった場合、進行中の転送が完了するとその接続は再利用されずに閉じられます。
デフォルトは 0 秒です。これは、このオプションが無効であり、すべての接続が再利用されうることを意味します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
PHP 8.2.0 以降かつ cURL 7.80.0 以降で利用可能です。
-
CURLOPT_MAXREDIRS
(int)
-
HTTP リダイレクトの最大回数を指定します。CURLOPT_FOLLOWLOCATION と合わせて使用してください。
デフォルト値の 20 は、無限リダイレクトを防ぐために設定されています。
-1 を指定すると何度でもリダイレクトするようになります。0 を指定すると一切リダイレクトしなくなります。
cURL 7.5.0 以降で利用可能です。
-
CURLOPT_MAX_RECV_SPEED_LARGE
(int)
-
転送中の累積平均でダウンロードがこの速度 (バイト毎秒単位) を超えた場合、
平均レートをこの値以下に保つために転送を一時停止します。
デフォルトは無制限です。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.15.5 以降で利用可能です。
-
CURLOPT_MAX_SEND_SPEED_LARGE
(int)
-
転送中の累積平均でアップロードがこの速度 (バイト毎秒単位) を超えた場合、
平均レートをこの値以下に保つために転送を一時停止します。
デフォルトは無制限です。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.15.5 以降で利用可能です。
-
CURLOPT_MIME_OPTIONS
(int)
-
CURLMIMEOPT_* 定数のビットマスクを指定します。
現在利用可能なオプションは、
CURLMIMEOPT_FORMESCAPE のみです。
PHP 8.3.0 以降かつ cURL 7.81.0 以降で利用可能です。
-
CURLOPT_MUTE
(int)
-
true を指定すると cURL 関数に関する出力が完全に抑制されます。
このオプションの代わりに CURLOPT_RETURNTRANSFER を使用してください。
cURL 7.1.0 以降で利用可能でしたが、cURL 7.8.0 からは非推奨となっており、
最終的に cURL 7.15.5 まで利用可能でした。
PHP 7.3.0 で削除されました。
-
CURLOPT_NETRC
(int)
-
true を指定すると、
接続しているリモートサイトのユーザー名とパスワードを探すために
~/.netrc ファイルをスキャンします。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_NETRC_FILE
(int)
-
.netrc ファイルへのフルパス名を含む string を指定します。
このオプションが省略され、かつ CURLOPT_NETRC が設定されている場合、
cURL は現在のユーザーのホームディレクトリにある
.netrc ファイルをチェックします。
cURL 7.11.0 以降で利用可能です。
-
CURLOPT_NEW_DIRECTORY_PERMS
(int)
-
リモートサーバーで新しく作成されたディレクトリに設定されるパーミッションの値 (int) を設定します。
デフォルト値は 0755 です。
これを使用できるプロトコルは sftp://、scp://、
file:// のみです。
cURL 7.16.4 以降で利用可能です。
-
CURLOPT_NEW_FILE_PERMS
(int)
-
リモートサーバーで新しく作成されたファイルに設定されるパーミッションの値 (int) を設定します。
デフォルト値は 0644 です。
これを使用できるプロトコルは
sftp://、scp://、
file:// のみです。
cURL 7.16.4 以降で利用可能です。
-
CURLOPT_NOBODY
(int)
-
true を指定するとボディが出力から除外されます。
HTTP(S) の場合、cURL は HEAD リクエストを実行します。他のほとんどのプロトコルの場合、
cURL はボディデータを一切要求しません。
これを false に変更すると、ボディデータが出力に含まれるようになります。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_NOPROGRESS
(int)
-
true を指定すると cURL 転送でプログレスメーターを無効化します。
注意:
PHP はこのオプションを自動的に true に設定します。
これを変えるのはデバッグ目的のみとしてください。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_NOPROXY
(int)
-
到達するのにプロキシを必要としないホスト名を、カンマ区切りのリストからなる string で設定します。
このリスト内のそれぞれの名前は、ホスト名を含むドメインまたはホスト名自体として一致判定がなされます。
この string で利用可能な唯一のワイルドカードは、
すべてのホストにマッチする単一の * 文字です。
これを指定すると実質的にプロキシが無効になります。
このオプションに空の string を設定すると、すべてのホスト名でプロキシが有効になります。
cURL 7.86.0 以降では、このオプションで設定する IP アドレスを
CIDR 記法で指定できます。
cURL 7.19.4 以降で利用可能です。
-
CURLOPT_NOSIGNAL
(int)
-
true を指定すると、PHP プロセスにシグナルを送信しうる cURL 関数を使わないようになります。
マルチスレッド SAPI では、タイムアウトオプションを使えるようにするためにデフォルトで有効になっています。
cURL 7.10 以降で利用可能です。
-
CURLOPT_PASSWDFUNCTION
(int)
-
以下のシグニチャの callable を指定します。
string callback(resource $curlHandle, string $passwordPrompt, int $maximumPasswordLength)
-
curlHandle
-
cURL ハンドル。
-
passwordPrompt
-
パスワードプロンプト。
-
maximumPasswordLength
-
パスワードの最大長。
このコールバックは、パスワードが入った string を返さなければなりません。
cURL 7.4.2 以降で利用可能でしたが、cURL 7.11.1 からは非推奨となっており、
最終的に cURL 7.15.5 まで利用可能でした。
PHP 7.3.0 で削除されました。
-
CURLOPT_PASSWORD
(int)
-
認証で使用するパスワードを string で指定します。
cURL 7.19.1 以降で利用可能です。
-
CURLOPT_PATH_AS_IS
(int)
-
true を指定すると、cURL が URL パスをサーバーに渡す前に書き換えないようになります。
デフォルトは false で、URL のパス部分に含まれているかもしれない /../ や /./ の並びを圧縮します。
これらは、RFC 3986 section 5.2.4 に従い削除されるべきと考えられます。
PHP 7.0.7 以降かつ cURL 7.42.0 以降で利用可能です。
-
CURLOPT_PINNEDPUBLICKEY
(int)
-
ピン留めされた (ピンニングされた) 公開鍵を string で指定します。
この string には、PEM または DER 形式のピン留めされた公開鍵のファイル名を指定できます。
また、先頭に sha256// を付けて ; で区切った
任意の数の base64 エンコードされた sha256 ハッシュも指定できます。
PHP 7.0.7 以降かつ cURL 7.39.0 以降で利用可能です。
-
CURLOPT_PIPEWAIT
(int)
-
true を指定すると、新しい接続を作成して使用する前に、
既存の接続が多重化できるかどうかを確認し、
可能ならそうするよう待機します。
PHP 7.0.7 以降かつ cURL 7.43.0 以降で利用可能です。
-
CURLOPT_PORT
(int)
-
URL で指定されたポートや使用するプロトコルのデフォルトポートの代わりに
接続する代替ポート番号を int で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_POST
(int)
-
true を指定すると HTTP の POST リクエストを実行します。
このリクエストは application/x-www-form-urlencoded ヘッダーを使用します。
デフォルト値は false です。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_POSTFIELDS
(int)
-
HTTP の POST 操作で送信する全データです。
このパラメーターには、
'para1=val1¶2=val2&...' のような URL エンコードされた string か、
フィールド名をキー、フィールドデータを値とする array のいずれかを渡すことができます。
value が array の場合、
Content-Type ヘッダーは
multipart/form-data に設定されます。
ファイルは CURLFile または CURLStringFile を使って送信でき、
その場合 value は array でなければなりません。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_POSTQUOTE
(int)
-
FTP リクエストが実行された後にサーバーで実行する
FTP コマンドを string の array で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_POSTREDIR
(int)
-
CURL_REDIR_POST_301、
CURL_REDIR_POST_302、CURL_REDIR_POST_303 のビットマスクを指定します。
CURLOPT_FOLLOWLOCATION が設定されており
かつ指定した種類のリダイレクトが発生した場合に、
リダイレクト後のリクエストでも HTTP POST メソッドを使い続けるようになります。
cURL 7.19.1 以降で利用可能です。
-
CURLOPT_PRE_PROXY
(int)
-
プレプロキシとして使われるホスト名またはドット区切りの数値 IP アドレスを string で指定します。
プレプロキシは、今後のリクエストにおいて CURLOPT_PROXY オプションで
指定された HTTP(S) プロキシへ接続する前に cURL が接続するプロキシサーバーです。
プレプロキシは SOCKS プロキシのみ可能で、使用する socks の種類を指定するために
[scheme]:// を頭に付けるべきです。
数値の IPv6 アドレスは、[角括弧] で囲む必要があります。
プレプロキシを空の string に設定すると、プレプロキシの使用が明示的に無効になります。
この string でポート番号を指定するには、ホスト名の最後に :[port] を付加します。
プロキシのポート番号は、必要に応じて個別のオプション CURLOPT_PROXYPORT で指定できます。
ポートが指定されていない場合、デフォルトではポート 1080 が使用されます。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PREQUOTE
(int)
-
転送タイプが設定された後にサーバーへ渡す FTP コマンドを
string の array で指定します。
これらのコマンドはディレクトリ列挙を行う際には実行されず、
ファイル転送のみで実行されます。
cURL 7.9.5 以降で利用可能です。
-
CURLOPT_PRIVATE
(int)
-
この cURL ハンドルに関連付ける任意のデータを指定します。
このデータは、後に curl_getinfo の
CURLINFO_PRIVATE オプションを使って取得できます。
cURL はこのデータに対して何も行いません。
cURL のマルチハンドルを使用する場合、このプライベートデータには通常
標準的な cURL ハンドルを識別するための一意なキーを指定します。
cURL 7.10.3 以降で利用可能です。
-
CURLOPT_PROGRESSFUNCTION
(int)
-
以下のシグニチャの callable を指定します。
int callback(
resource $curlHandle,
int $bytesToDownload,
int $bytesDownloaded,
int $bytesToUpload,
int $bytesUploaded
)
-
curlHandle
-
cURL ハンドル。
-
bytesToDownload
-
この転送でダウンロードされようとしている総バイト数。
-
bytesDownloaded
-
これまでにダウンロードされたバイト数。
-
bytesToUpload
-
この転送でアップロードされようとしている総バイト数。
-
bytesUploaded
-
これまでにアップロードされたバイト数。
転送を中断し、CURLE_ABORTED_BY_CALLBACK エラーをセットするには、
このコールバックから非ゼロの int を返してください。
注意:
このコールバックが呼ばれるのは、CURLOPT_NOPROGRESS オプションが
false に設定されている場合のみです。
cURL 7.1.0 以降で利用可能ですが、cURL 7.32.0 以降は非推奨となりました。
代わりに CURLOPT_XFERINFOFUNCTION を用いてください。
-
CURLOPT_PROTOCOLS
(int)
-
CURLPROTO_* 値のビットマスクを指定します。
これが使われた場合、cURL が転送で使用できるプロトコルを制限します。
デフォルトは CURLPROTO_ALL で、cURL はサポートするすべてのプロトコルを受け入れます。
CURLOPT_REDIR_PROTOCOLS も参照してください。
cURL 7.19.4 以降で利用可能ですが、cURL 7.85.0 以降は非推奨となりました。
-
CURLOPT_PROTOCOLS_STR
(int)
-
転送で許可するプロトコル名 (URL スキーム) をカンマ区切りリストの string で指定します。
大文字小文字は区別しません。
ALL を指定すると全てのプロトコルが許可されます。
デフォルトでは、サポートする全プロトコルを受け入れます。
利用可能なプロトコルは以下のとおりです:
DICT
FILE
FTP
FTPS
GOPHER
GOPHERS
HTTP
HTTPS
IMAP
IMAPS
LDAP
LDAPS
MQTT
POP3
POP3S
RTMP
RTMPE
RTMPS
RTMPT
RTMPTE
RTMPTS
RTSP
SCP
SFTP
SMB
SMBS
SMTP
SMTPS
TELNET
TFTP
WS
WSS
PHP 8.3.0 以降かつ cURL 7.85.0 以降で利用可能です。
-
CURLOPT_PROXY
(int)
-
リクエストをトンネリングする HTTP プロキシを string で指定します。
ホスト名、ドット区切りの数値 IP アドレス、
[角括弧] 内に書かれた数値 IPv6 アドレスのいずれかである必要があります。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_PROXYAUTH
(int)
-
プロキシ接続で使用する HTTP 認証方法を
CURLAUTH_* 定数のビットマスクで指定します。
プロキシ認証では、現在 CURLAUTH_BASIC と
CURLAUTH_NTLM のみがサポートされています。
デフォルト値は CURLAUTH_BASIC です。
cURL 7.10.7 以降で利用可能です。
-
プロキシに渡すカスタム HTTP ヘッダーを string の array で指定します。
PHP 7.0.7 以降かつ cURL 7.37.0 以降で利用可能です。
-
CURLOPT_PROXYPASSWORD
(int)
-
プロキシでの認証に使用するパスワードを string で指定します。
cURL 7.19.1 以降で利用可能です。
-
CURLOPT_PROXYPORT
(int)
-
接続するプロキシのポート番号を int で指定します。
このポート番号は CURLOPT_PROXY でも設定できます。
これを 0 に設定すると、cURL はデフォルトのプロキシポート番号か
プロキシ URL string で指定されたポート番号を使用します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_PROXYTYPE
(int)
-
プロキシの種類を CURLPROXY_* 定数のいずれかで指定します。
デフォルト値は CURLPROXY_HTTP です。
cURL 7.10 以降で利用可能です。
-
CURLOPT_PROXYUSERNAME
(int)
-
プロキシでの認証に使用するユーザー名を string で指定します。
cURL 7.19.1 以降で利用可能です。
-
CURLOPT_PROXYUSERPWD
(int)
-
プロキシへの接続で使用するユーザー名とパスワードを、
[ユーザー名]:[パスワード] の形式の
string で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_PROXY_CAINFO
(int)
-
プロキシ Certificate Authority (CA) バンドルへのパスを指定します。
HTTPS プロキシを検証するための一つ以上の証明書を保持するファイルのパスを string で指定します。
このオプションは HTTPS プロキシへの接続用であり、HTTPS サーバー用ではありません。
デフォルトでは、cURL の cacert バンドルが格納されていると思われる
システムパスに設定されます。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_CAINFO_BLOB
(int)
-
HTTPS プロキシを検証するための一つ以上の証明書を保持する PEM ファイルの名前を string で指定します。
このオプションは HTTPS プロキシへの接続用であり、HTTPS サーバー用ではありません。
デフォルトでは、cURL の cacert バンドルが格納されていると思われる
システムパスに設定されます。
PHP 8.2.0 以降かつ cURL 7.77.0 以降で利用可能です。
-
CURLOPT_PROXY_CAPATH
(int)
-
HTTPS プロキシを検証するための CA 証明書が格納されたディレクトリを string で指定します。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_CRLFILE
(int)
-
SSL 交換中の証明書検証で使用する PEM 形式の CRL (Certificate Revocation List; 証明書失効リスト) を
記載したファイルの名前を string で指定します。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_ISSUERCERT
(int)
-
プロキシ発行者の SSL 証明書ファイル名を string で指定します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_PROXY_ISSUERCERT_BLOB
(int)
-
プロキシ発行者の SSL 証明書を含む string を指定します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_PROXY_KEYPASSWD
(int)
-
CURLOPT_PROXY_SSLKEY の秘密鍵を使用するために必要なパスワードを string で指定します。
証明書を読み込むのにはパスフレーズは不要ですが、
秘密鍵を読み込むためには必要です。
このオプションは HTTPS プロキシへの接続用です。HTTPS サーバーへの接続用ではありません。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_PINNEDPUBLICKEY
(int)
-
HTTPS プロキシ用のピン留めされた (ピンニングされた) 公開鍵を指定します。
この string には、PEM または DER 形式のピン留めされた公開鍵のファイル名を指定できます。
また、先頭に sha256// を付けて ; で区切った
任意の数の base64 エンコードされた sha256 ハッシュも指定できます。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SERVICE_NAME
(int)
-
プロキシ認証サービス名を string で指定します。
PHP 7.0.7 以降かつ、HTTP プロキシを使う場合は cURL 7.43.0 以降、SOCKS5 プロキシを使う場合は cURL 7.49.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLCERT
(int)
-
HTTPS プロキシへの接続に用いるクライアント証明書のファイル名を string で指定します。
Secure Transport でのデフォルト形式は P12、その他のエンジンでのデフォルト形式は PEM です。
この形式は CURLOPT_PROXY_SSLCERTTYPE で変更できます。
NSS または Secure Transport では、セキュリティデータベースで名前が付けられた
証明書のニックネームも指定できます。
カレントディレクトリのファイルを使う場合、
ニックネームとの混同を避けるために ./ を頭に付ける必要があります。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLCERTTYPE
(int)
-
HTTPS プロキシへの接続時に使用するクライアント証明書の形式を string で指定します。
Secure Transport 以外では、サポートされている形式は PEM と DER です。
OpenSSL (バージョン 0.9.3 以降) と Secure Transport
(iOS 5 以降または OS X 10.7 以降) では、PKCS#12 でエンコードされたファイル用の
P12 もサポートします。デフォルトは PEM です。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLCERT_BLOB
(int)
-
SSL プロキシクライアント証明書を含む string を指定します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLKEY
(int)
-
HTTPS プロキシへの接続に使用する秘密鍵のファイル名を string で指定します。
デフォルトの形式は PEMで、
CURLOPT_PROXY_SSLKEYTYPE を使って変更できます。
(iOS および Mac OS X の場合) Secure Transport を使うように cURL をビルドした場合、このオプションは無視されます。
TLS を有効にしてビルドした場合にのみ利用可能です。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLKEYTYPE
(int)
-
秘密鍵の形式を string で指定します。
サポートされている形式は以下のとおりです:
。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLKEY_BLOB
(int)
-
HTTPS プロキシへ接続するための秘密鍵を含む string を指定します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_PROXY_SSLVERSION
(int)
-
希望する HTTPS プロキシの TLS バージョンを
CURL_SSLVERSION_* 定数のいずれかで指定します。
デフォルト値は CURL_SSLVERSION_DEFAULT です。
警告
このオプションは設定せずに、デフォルトをそのまま用いた方がよいでしょう。
デフォルトの CURL_SSLVERSION_DEFAULT は、
リモートの SSL プロトコルのバージョンを判別しようと試みます。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSL_CIPHER_LIST
(int)
-
HTTPS プロキシへの接続に使用する暗号をコロン区切りの string で指定します。
OpenSSL で使用する場合、カンマとスペースも区切り文字として使うことができ、
!、-、+ を演算子として使用できます。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSL_OPTIONS
(int)
-
プロキシの SSL 動作オプションを指定します。
これは CURLSSLOPT_* 定数のビットマスクです。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSL_VERIFYHOST
(int)
-
2 を指定すると、HTTPS プロキシの証明書名フィールドをプロキシ名と照合して検証します。
0 を指定すると、証明書で使用されている名前に関係なく接続が成功します。
この機能は注意して使用してください!
cURL 7.28.0 以前では、1 をデバッグオプションとして指定できます。
cURL 7.28.1 から 7.65.3では、1 を指定すると CURLE_BAD_FUNCTION_ARGUMENT が返されます。
cURL 7.66.0 以降では 1 は 2 と同じ値として扱われます。
デフォルト値は 2 です。
本番環境では、このオプションの値は 2 のままにしておくべきです。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_SSL_VERIFYPEER
(int)
-
false を指定すると cURL が ピア証明書を検証しなくなります。
検証に使用する代替証明書は CURLOPT_CAINFO オプションで指定するか、
証明書ディレクトリを CURLOPT_CAPATH オプションで指定できます。
false を指定すると、ピア証明書の検証は無条件で成功します。
デフォルトは true です。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_TLS13_CIPHERS
(int)
-
プロキシへの TLS 1.3 接続に使用する暗号をコロン区切りの string で指定します。
このオプションは現在、cURL が OpenSSL 1.1.1 以降を使用してビルドされた場合にのみ使用されます。
その他の SSL バックエンドを使用する場合、TLS 1.3 の暗号スイートは
CURLOPT_PROXY_SSL_CIPHER_LIST オプションで設定できます。
PHP 7.3.0 以降かつ cURL 7.61.0 以降で利用可能です。
-
CURLOPT_PROXY_TLSAUTH_PASSWORD
(int)
-
CURLOPT_PROXY_TLSAUTH_TYPE オプションで指定された
TLS の認証方法で用いるパスワードを string で指定します。
CURLOPT_PROXY_TLSAUTH_USERNAME オプションも合わせて設定する必要があります。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_TLSAUTH_TYPE
(int)
-
HTTPS 接続で用いられる TLS の認証方法を string で指定します。
サポートされている方法は 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
(int)
-
CURLOPT_PROXY_TLSAUTH_TYPEオプションで指定された
HTTPS プロキシの TLS 認証方法に使用するユーザー名を指定します。
CURLOPT_PROXY_TLSAUTH_PASSWORD オプションも合わせて設定する必要があります。
PHP 7.3.0 以降かつ cURL 7.52.0 以降で利用可能です。
-
CURLOPT_PROXY_TRANSFER_MODE
(int)
-
1 を指定すると、HTTP のプロキシを経由して行われる FTP 転送の転送モード (バイナリないし ASCII) を設定するために
URL へ type=a または type=i を付加するようになります。
この設定がなかったり 0 に設定されていたりする場合、
プロキシ経由で FTP を実行するにあたって
CURLOPT_TRANSFERTEXT は無視されます。
デフォルト値は 0 です。
cURL 7.18.0 以降で利用可能です。
-
CURLOPT_PUT
(int)
-
true を指定すると HTTP PUT でファイルを送信します。PUT するファイルは
CURLOPT_READDATA と CURLOPT_INFILESIZE で設定しなければなりません。
cURL 7.1.0 以降で利用可能ですが、cURL 7.12.1 以降は非推奨となりました。
-
CURLOPT_QUICK_EXIT
(int)
-
true を指定すると、cURL がタイムアウトから復帰する際に、リソースの解放処理をスキップします。
これにより、関連リソースがリークする可能性を犠牲にして、
cURL プロセスを迅速に終了できるようになります。
PHP 8.3.0 以降かつ cURL 7.87.0 以降で利用可能です。
-
CURLOPT_QUOTE
(int)
-
FTP リクエストの前にサーバーで実行する FTP コマンドを string の array で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_RANDOM_FILE
(int)
-
SSL 用の乱数生成器のシードに用いるファイル名を string で指定します。
cURL 7.7.0 以降で利用可能ですが、cURL 7.84.0 以降は非推奨となりました。
-
CURLOPT_RANGE
(int)
-
取得するデータの範囲を X-Y 形式の string で指定します (X、Y の片方は省略できます)。
HTTP 転送では、X-Y,N-M 形式でカンマ区切りの複数の範囲も指定できます。
null を指定すると、バイト範囲のリクエストは無効になります。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_READDATA
(int)
-
CURLOPT_READFUNCTION で設定されたファイル読み取り関数によって
使用されるファイルポインタ resource を指定します。
cURL 7.9.7 以降で利用可能です。
-
CURLOPT_READFUNCTION
(int)
-
以下のシグニチャの callable を指定します。
string callback(resource $curlHandle, resource $streamResource, int $maxAmountOfDataToRead)
-
curlHandle
-
cURL ハンドル。
-
streamResource
-
CURLOPT_READDATA オプションを通して
cURL へと渡されたストリーム resource。
-
maxAmountOfDataToRead
-
読み出すべきデータの最大長。
このコールバックは、要求されたデータ長以下の string を
返さなければなりません。
典型的には、渡されたストリーム resource からデータを読み出して返します。
EOF を伝えるためには空の string を返してください。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_REDIR_PROTOCOLS
(int)
-
CURLOPT_FOLLOWLOCATION が有効な場合に、
リダイレクトで追跡する際の使用可能なプロトコルを
CURLPROTO_* 値のビットマスクで制限します。
これにより、特定の転送でリダイレクト時にプロトコルのサブセットのみを使用するように制限できます。
cURL 7.19.4 以降、cURL はデフォルトで FILE と SCP を除く
すべてのプロトコルで追跡を許可します。
cURL 7.19.4 より前は、cURL はサポートされているすべてのプロトコルを無条件で追跡していました。
プロトコルの定数については CURLOPT_PROTOCOLS も参照してください。
cURL 7.19.4 以降で利用可能ですが、cURL 7.85.0 以降は非推奨となりました。
-
CURLOPT_REDIR_PROTOCOLS_STR
(int)
-
CURLOPT_FOLLOWLOCATION が有効な場合に、リダイレクトでの追跡を許可する
プロトコル名 (URL スキーム) をカンマ区切りリストの string で指定します。
プロトコル名の大文字小文字は区別しません。
ALL を指定するとすべてのプロトコルで追跡を有効にします。
cURL 7.65.2 以降、デフォルトは FTP、
FTPS、HTTP、HTTPS です。
cURL 7.40.0 から 7.65.1 では、
FILE、SCP、SMB、
SMBS を除くすべてのプロトコルがデフォルトでした。
cURL 7.40.0 より前は、FILE と SCP を除く
すべてのプロトコルがデフォルトでした。
利用可能なプロトコルは以下のとおりです:
DICT
FILE
FTP
FTPS
GOPHER
GOPHERS
HTTP
HTTPS
IMAP
IMAPS
LDAP
LDAPS
MQTT
POP3
POP3S
RTMP
RTMPE
RTMPS
RTMPT
RTMPTE
RTMPTS
RTSP
SCP
SFTP
SMB
SMBS
SMTP
SMTPS
TELNET
TFTP
WS
WSS
PHP 8.3.0 以降かつ cURL 7.85.0 以降で利用可能です。
-
CURLOPT_REFERER
(int)
-
HTTP リクエストで使用する Referer: ヘッダーの内容を
string で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_REQUEST_TARGET
(int)
-
URL から抽出されたパスに代わって
今後のリクエストで使用するパスを string で指定します。
PHP 7.3.0 以降かつ cURL 7.55.0 以降で利用可能です。
-
CURLOPT_RESOLVE
(int)
-
特定のホスト・ポートの組み合わせに対するカスタムアドレスを、
コロン区切りの string の array で指定します。
具体的な形式は以下のとおりです:
array(
"example.com:80:127.0.0.1",
"example2.com:443:127.0.0.2",
)
cURL 7.21.3 以降で利用可能です。
-
CURLOPT_RESUME_FROM
(int)
-
転送を再開するバイト単位のオフセットを指定します。
このオプションは、有効な int にキャストできる任意の値を受け付けます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_RETURNTRANSFER
(int)
-
true を指定すると、転送の出力を直接出力する代わりに、
curl_exec の戻り値として string の形で返します。
-
CURLOPT_RTSP_CLIENT_CSEQ
(int)
-
次の RTSP リクエストに対して発行する CSEQ 番号を int で指定します。
アプリケーションが以前切断された接続を再開するときに有用です。
以後 CSEQ はこの新しい番号からインクリメントされます。
デフォルト値は 0 です。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_RTSP_REQUEST
(int)
-
作成する RTSP リクエストの種類を指定します。
CURL_RTSPREQ_* 定数のいずれかを使う必要があります。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_RTSP_SERVER_CSEQ
(int)
-
次のサーバーからクライアントへの RTSP リクエストで期待する CSEQ 番号を int で指定します。
この機能 (サーバーリクエストの待ち受け) は未実装です。
デフォルト値は 0 です。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_RTSP_SESSION_ID
(int)
-
このハンドルの現在の RTSP セッション ID の値を string で指定します。
この値が何らかの非 null 値に設定されると、
サーバーから受信した ID が一致しない場合
cURL は CURLE_RTSP_SESSION_ERROR を返します。
null に設定されている場合、サーバーが最初にレスポンス内で ID を設定したときに
cURL が自動的に ID を設定します。
デフォルトは null です。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_RTSP_STREAM_URI
(int)
-
操作するストリーム URI を string で指定します。
設定されていない場合、cURL は RTSP ストリーム URI の代わりに * を渡し、
一般的なサーバーオプションで動作します。
RTSP の場合、CURLOPT_RTSP_STREAM_URI は
リクエストヘッダーでサーバーへ送信する URL を表し、
CURLOPT_URL は接続先を示します。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_RTSP_TRANSPORT
(int)
-
この RTSP セッションの Transport: ヘッダーを指定します。
cURL 7.20.0 以降で利用可能です。
-
CURLOPT_SAFE_UPLOAD
(int)
-
常に true です (訳注: true 以外の値を設定しようとするとエラーになります)。
cURL では CURLOPT_POSTFIELDS で @ から始まる値を渡すことで
ファイルをアップロードできますが、これを無効にします。
これにより、@ で始まる値をフィールドとして安全に渡すことができます。
ファイルのアップロードには CURLFile が代わりに使用できます。
-
CURLOPT_SASL_AUTHZID
(int)
-
転送で用いる認可 ID (authzid) を string で指定します。
これは PLAIN SASL 認証メカニズムのみに適用され、指定は任意です。
指定されていない場合、ユーザー名で指定された認証 ID (authcid) のみがパスワードとともにサーバーに送信されます。
authzid が与えられていない場合、サーバーは authcid から authzid を導出し、それを内部的に使用します。
PHP 8.2.0 以降かつ cURL 7.66.0 以降で利用可能です。
-
CURLOPT_SASL_IR
(int)
-
true を指定すると、最初のパケットで初期レスポンスの送信が有効になります。
PHP 7.0.7 以降かつ cURL 7.31.0 以降で利用可能です。
-
CURLOPT_SERVICE_NAME
(int)
-
認証サービス名を string で指定します。
PHP 7.0.7 以降かつ cURL 7.43.0 以降で利用可能です。
-
CURLOPT_SHARE
(int)
-
curl_share_init の返り値を渡します。
この cURL ハンドルが、指定した共有ハンドルのデータを使用するようにします。
cURL 7.10 以降で利用可能です。
-
CURLOPT_SOCKS5_AUTH
(int)
-
使用する SOCKS5 の認証方法を指定します。選択肢は以下のとおりです:
CURLAUTH_BASIC
CURLAUTH_GSSAPI
CURLAUTH_NONE
複数のメソッドが設定されている場合、cURL はサーバーをポーリングして
サポートされるメソッドを確認し、最適なものを選択します。
デフォルト値は CURLAUTH_BASIC|CURLAUTH_GSSAPI です。
実際のユーザー名とパスワードは CURLOPT_PROXYUSERPWD オプションで設定します。
PHP 7.3.0 以降かつ cURL 7.55.0 以降で利用可能です。
-
CURLOPT_SOCKS5_GSSAPI_NEC
(int)
-
1 を指定すると
GSSAPI ネゴシエーションの一部としての保護モードネゴシエーションの非保護交換を有効にします。
0 を指定すると無効にします。
cURL 7.19.4 以降で利用可能です。
-
CURLOPT_SOCKS5_GSSAPI_SERVICE
(int)
-
SOCKS5 サービスの名前を string で指定します。
デフォルト値は rcmd です。
cURL 7.19.4 以降で利用可能ですが、cURL 7.49.0 以降は非推奨となりました。
代わりに CURLOPT_PROXY_SERVICE_NAME を使用してください。
-
CURLOPT_SSH_AUTH_TYPES
(int)
-
以下の定数の 1 つ以上から構成されるビットマスクを指定します:
CURLSSH_AUTH_PUBLICKEY
CURLSSH_AUTH_PASSWORD
CURLSSH_AUTH_HOST
CURLSSH_AUTH_KEYBOARD
CURLSSH_AUTH_AGENT
CURLSSH_AUTH_ANY
デフォルト値は CURLSSH_AUTH_ANY です。
cURL 7.16.1 以降で利用可能です。
-
CURLOPT_SSH_COMPRESSION
(int)
-
true を指定すると内蔵の SSH 圧縮が有効になり、false を指定すると無効になります。
サーバーがこのリクエストを無視する可能性があることに注意してください。
デフォルト値は false です。
PHP 7.3.0 以降かつ cURL 7.56.0 以降で利用可能です。
-
CURLOPT_SSH_HOSTKEYFUNCTION
(int)
-
SSH ホストキーの検証が必要になった場合に呼ばれる callable を指定します。
このコールバックは、以下のシグニチャである必要があります。
int callback(
resource $curlHandle,
int $keyType,
string $key,
int $keyLength
)
-
curlHandle
-
cURL ハンドル。
-
keyType
-
CURLKHTYPE_* のうちいずれかのキーの種類。
-
key
-
チェックするキー。
-
keyLength
-
キーのバイト長。
このコールバックは CURLOPT_SSH_KNOWNHOSTS を上書きします。
PHP 8.3.0 以降かつ cURL 7.84.0 以降で利用可能です。
-
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5
(int)
-
リモートホストの公開鍵の MD5 チェックサムを、32 桁の十六進数の string で指定します。
md5sum が一致しない限り、cURL はホストへの接続を拒否します。
このオプションは SCP 転送と SFTP 転送のみに対応しています。
cURL 7.17.1 以降で利用可能です。
-
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256
(int)
-
リモートホストの公開鍵の SHA256 ハッシュを、base64 エンコードされた string で指定します。
与えられたハッシュがリモートホストから提供されるハッシュと一致しない場合、転送は失敗します。
PHP 8.2.0 以降かつ cURL 7.80.0 以降で利用可能です。
-
CURLOPT_SSH_KNOWNHOSTS
(int)
-
使用する known_host ファイルの名前を指定します。
このファイルには、libssh2 でサポートされている OpenSSH ファイル形式を用いてください。
cURL 7.19.6 以降で利用可能です。
-
CURLOPT_SSH_PRIVATE_KEYFILE
(int)
-
秘密鍵のファイル名を指定します。このオプションが指定されない場合、
環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa を、
設定されていなければカレントディレクトリの id_dsa をデフォルトとします。
ファイルがパスワードで保護されている場合、
CURLOPT_KEYPASSWD でパスワードを指定します。
cURL 7.16.1 以降で利用可能です。
-
CURLOPT_SSH_PUBLIC_KEYFILE
(int)
-
公開鍵のファイル名を指定します。このオプションが指定されない場合、
環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa.pub を、
設定されていなければカレントディレクトリの id_dsa.pub をデフォルトとします。
cURL 7.16.1 以降で利用可能です。
-
CURLOPT_SSLCERT
(int)
-
PEM 形式の証明書を含むファイル名を指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_SSLCERTPASSWD
(int)
-
CURLOPT_SSLCERT の証明書を使用するために必要なパスワードを指定します。
cURL 7.1.0 以降で利用可能ですが、cURL 7.17.0 以降は非推奨となりました。
-
CURLOPT_SSLCERTTYPE
(int)
-
証明書のフォーマットを string で指定します。サポートされているフォーマット:
P12 (PKCS#12 でエンコードされたファイル用) は OpenSSL 0.9.3 以降で利用可能です。
デフォルト値は PEM です。
cURL 7.9.3 以降で利用可能です。
-
CURLOPT_SSLCERT_BLOB
(int)
-
SSL のクライアント証明書を string で指定します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_SSLENGINE
(int)
-
CURLOPT_SSLKEY で指定された SSL 秘密鍵で用いる暗号化エンジンの識別子を string で指定します。
cURL 7.9.3 以降で利用可能です。
-
CURLOPT_SSLENGINE_DEFAULT
(int)
-
非対称暗号化操作に用いられる暗号化エンジンの識別子を string で指定します。
cURL 7.9.3 以降で利用可能です。
-
CURLOPT_SSLKEY
(int)
-
SSL 秘密鍵を含むファイル名を指定します。
cURL 7.9.3 以降で利用可能です。
-
CURLOPT_SSLKEYPASSWD
(int)
-
CURLOPT_SSLKEY
で指定された SSL 秘密鍵を使用するために必要な秘密パスワードを設定します。
注意:
このオプションには機密パスワードが含まれているため、
これを含む PHP スクリプトを必ず安全に保つようにしてください。
cURL 7.9.3 以降で利用可能ですが、cURL 7.17.0 以降は非推奨となりました。
-
CURLOPT_SSLKEYTYPE
(int)
-
CURLOPT_SSLKEY で指定された SSL の秘密鍵の種類を設定します。
サポートされている鍵の種類は以下のとおりです:
デフォルト値は PEM です。
cURL 7.9.3 以降で利用可能です。
-
CURLOPT_SSLKEY_BLOB
(int)
-
クライアント証明書用の秘密鍵を string で指定します。
PHP 8.1.0 以降かつ cURL 7.71.0 以降で利用可能です。
-
CURLOPT_SSLVERSION
(int)
-
CURL_SSLVERSION_*
定数のいずれかを指定します。
警告
このオプションは設定せずに、デフォルトをそのまま用いた方がよいでしょう。
これを CURL_SSLVERSION_SSLv2 や
CURL_SSLVERSION_SSLv3 に設定するのは、
SSLv2 や SSLv3 の既知の脆弱性を考えれば極めて危険です。
デフォルト値は CURL_SSLVERSION_DEFAULT です。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_SSL_CIPHER_LIST
(int)
-
TLS 1.2 (1.1、1.0) の接続に用いる暗号をコロン区切りの string で指定します。
cURL 7.9 以降で利用可能です。
-
CURLOPT_SSL_EC_CURVES
(int)
-
楕円曲線アルゴリズムをコロン区切りリストで指定します。例えば、
X25519:P-521 は 2 つの楕円曲線を指定している有効なリストです。
このオプションは、cURL をビルドする際に指定した SSL バックエンドがそのアルゴリズムをサポートしていれば、
SSL ハンドシェイクにおけるクライアントの鍵交換アルゴリズムを定義します。
PHP 8.2.0 以降かつ cURL 7.73.0 以降で利用可能です。
-
CURLOPT_SSL_ENABLE_ALPN
(int)
-
false を指定すると SSL ハンドシェイクで ALPN を無効にします
(cURL をビルドする際に指定した SSL バックエンドがそれをサポートしている場合)。
ALPN は http2 のネゴシエーションに使われるものです。
PHP 7.0.7 以降かつ cURL 7.36.0 以降で利用可能です。
-
CURLOPT_SSL_ENABLE_NPN
(int)
-
false を指定すると SSL ハンドシェイクで NPN を無効にします
(cURL をビルドする際に指定した SSL バックエンドがそれをサポートしている場合)。
NPN は http2 のネゴシエーションに使われるものです。
PHP 7.0.7 以降かつ cURL 7.36.0 以降で利用可能ですが、cURL 7.86.0 以降は非推奨となりました。
-
CURLOPT_SSL_FALSESTART
(int)
-
true を指定すると TLS の False Start が有効になり、false を指定すると無効になります。
False Start モードは、TLS クライアントがサーバーの Finished メッセージを検証する前に
アプリケーションデータの送信を開始するモードです。
PHP 7.0.7 以降かつ cURL 7.42.0 以降で利用可能です。
-
CURLOPT_SSL_OPTIONS
(int)
-
SSL の動作オプションを
CURLSSLOPT_* 定数のビットマスクで指定します。
デフォルトではどのビットも設定されていません。
PHP 7.0.7. 以降かつ cURL 7.25.0 以降で利用可能です。
-
CURLOPT_SSL_SESSIONID_CACHE
(int)
-
0 を指定すると SSL のセッション ID キャッシュが無効になり、
1 を指定すると有効になります。
デフォルトでは、キャッシュを有効にした状態ですべての転送が実行されます。
cURL 7.16.0 以降で利用可能です。
-
CURLOPT_SSL_VERIFYHOST
(int)
-
2 を指定すると、SSL のピア証明書の Common Name フィールドまたは Subject Alternate Name フィールドが
与えられたホスト名と一致するかどうかを検証します。
0 を指定すると、名前をチェックしません。
1 は使用すべきではありません。
本番環境では、このオプションの値は
2 (デフォルト値) のままにしておくべきです。
値 1 のサポートは cURL 7.28.1 で削除されました。
cURL 7.8.1 以降で利用可能です。
-
CURLOPT_SSL_VERIFYPEER
(int)
-
false を指定すると cURL が ピア証明書を検証しなくなります。
検証に使用する代替証明書は CURLOPT_CAINFO オプションで指定するか、
証明書ディレクトリを CURLOPT_CAPATH オプションで指定できます。
cURL 7.10 以降のデフォルト値は true です。
cURL 7.10 以降は、デフォルトの CA 証明書バンドルがインストールされています。
cURL 7.4.2 以降で利用可能です。
-
CURLOPT_SSL_VERIFYSTATUS
(int)
-
true を指定すると、証明書のステータスの検証が有効になります。false を指定すると無効になります。
PHP 7.0.7 以降かつ cURL 7.41.0 以降で利用可能です。
-
CURLOPT_STDERR
(int)
-
STDERR の代わりにエラーを出力する代替場所を
指すファイルハンドルを resource で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_STREAM_WEIGHT
(int)
-
ストリームの重み (1 から 256 の間の数値) を数値で設定します。
PHP 7.0.7 以降かつ cURL 7.46.0 以降で利用可能です。
-
true を指定すると、CURLOPT_HTTPPROXYTUNNEL が使われて CONNECT リクエストが生成された場合に、
ユーザーコールバック関数 CURLOPT_HEADERFUNCTION および CURLOPT_WRITEFUNCTION へ
プロキシ CONNECT レスポンスヘッダを渡さなくなります。
デフォルト値は false です。
PHP 7.3.0 以降かつ cURL 7.54.0 以降で利用可能です。
-
CURLOPT_TCP_FASTOPEN
(int)
-
true を指定すると TCP Fast Open を有効にし、false を指定すると無効にします。
PHP 7.0.7 以降かつ cURL 7.49.0 以降で利用可能です。
-
CURLOPT_TCP_KEEPALIVE
(int)
-
1 を指定すると TCP のキープアライブプローブが送信されます。
送られるプローブの遅延と頻度は、オペレーティングシステムがサポートしていれば
CURLOPT_TCP_KEEPIDLE オプションと CURLOPT_TCP_KEEPINTVL オプションで制御できます。
0 (デフォルト) を指定すると キープアライブプローブが無効になります。
プローブの最大数は CURLOPT_TCP_KEEPCNT オプションで設定できます。
cURL 7.25.0 以降で利用可能です。
-
CURLOPT_TCP_KEEPIDLE
(int)
-
接続がアイドル状態のとき、オペレーティングシステムがキープアライブプローブを送信する前に待機する遅延を秒単位で設定します。
CURLOPT_TCP_KEEPALIVE が有効でなければ効果はありません。
なお、すべてのオペレーティングシステムがこのオプションをサポートしているわけではありません。
デフォルトは 60 です。
cURL 7.25.0 以降で利用可能です。
-
CURLOPT_TCP_KEEPINTVL
(int)
-
オペレーティングシステムがキープアライブプローブを送信する間隔を秒単位で設定します。
CURLOPT_TCP_KEEPALIVE が有効でなければ効果はありません。
なお、すべてのオペレーティングシステムがこのオプションをサポートしているわけではありません。
デフォルトは 60 です。
cURL 7.25.0 以降で利用可能です。
-
CURLOPT_TCP_KEEPCNT
(int)
-
TCP におけるキープアライブプローブの最大送信数を指定します。
デフォルトは 9 です。
PHP 8.4.0 以降かつ cURL 8.9.0 以降で利用可能です。
-
CURLOPT_TCP_NODELAY
(int)
-
true を指定すると、TCP の Nagle アルゴリズム
(ネットワーク上の小さなパケットの数を最小化しようとするアルゴリズム) を無効にします。
デフォルト値は true です。
cURL 7.11.2 以降で利用可能です。
-
CURLOPT_TELNETOPTIONS
(int)
-
telnet ネゴシエーションに渡す string の array を指定します。
変数は <option=value> 形式である必要があります。
cURLは、TTYPE、
XDISPLOC、NEW_ENV をサポートしています。
cURL 7.7.0 以降で利用可能です。
-
CURLOPT_TFTP_BLKSIZE
(int)
-
TFTP データ転送に使用するブロックサイズを指定します。
有効な値の範囲は 8 から 65464 バイトです。
このオプションが指定されていない場合、デフォルトの 512 バイトが使用されます。
指定されたブロックサイズは、リモートサーバーがサポートしている場合に限り使用されます。
サーバーがオプション確認を返さない場合や、
ブロックサイズなしでオプション確認を返してきた場合、
デフォルトの 512 バイトが使われます。
cURL 7.19.4 以降で利用可能です。
-
CURLOPT_TFTP_NO_OPTIONS
(int)
-
true を指定すると、TFTP でオプションリクエストを送信しないようになります。
デフォルト値は false です。
PHP 7.0.7 以降かつ cURL 7.48.0 以降で利用可能です。
-
CURLOPT_TIMECONDITION
(int)
-
CURLOPT_TIMEVALUE の扱い方を設定します。
CURL_TIMECOND_IFMODSINCE を指定すると、
CURLOPT_TIMEVALUE で指定された時刻以降にページが変更された場合に限り
そのページを返します。ページが変更されていない場合、
304 Not Modified ヘッダーが返されます
(レスポンスのヘッダー部を確認するには CURLOPT_HEADER を true に設定しておく必要があります)。
CURL_TIMECOND_IFUNMODSINCE を使うとその逆の動作になります。
CURLOPT_TIMEVALUE を無視して常にページを返すには
CURL_TIMECOND_NONE を使用します。
デフォルトは CURL_TIMECOND_NONE です。
cURL 7.46.0 以前のデフォルトは
CURL_TIMECOND_IFMODSINCE でした。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_TIMEOUT
(int)
-
cURL 関数の実行を許容する最大秒数を指定します。
デフォルトは 0 で、転送中に関数がタイムアウトしないことを意味します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_TIMEOUT_MS
(int)
-
cURL 関数の実行を許容する最大ミリ秒数を指定します。
cURL がシステム標準のネームリゾルバを使うようにビルドされている場合、
接続のその部分のタイムアウトは秒精度となり、
指定できる最小のタイムアウトも 1 秒になります。
デフォルトは 0 で、転送中に関数がタイムアウトしないことを意味します。
cURL 7.16.2 以降で利用可能です。
-
CURLOPT_TIMEVALUE
(int)
-
1970 年 1 月 1 日からの秒数で表した時刻を指定します。この時刻は
CURLOPT_TIMECONDITION で使われます。
デフォルト値は 0 です。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_TIMEVALUE_LARGE
(int)
-
1970 年 1 月 1 日からの秒数で表した時刻を指定します。この時刻は
CURLOPT_TIMECONDITION で使われます。デフォルトは 0 です。
このオプションと CURLOPT_TIMEVALUE の違いは引数の型です。
'long' が 32 ビット幅しかないシステムでは、
2038 年を超える日付を設定するのにこちらのオプションを使う必要があります。
PHP 7.3.0 以降かつ cURL 7.59.0 以降で利用可能です。
-
CURLOPT_TLS13_CIPHERS
(int)
-
TLS 1.3 接続で用いる暗号を、コロン区切りの string で指定します。
このオプションは現在、cURL が OpenSSL 1.1.1 以降を使用してビルドされた場合にのみ使用されます。
その他の SSL バックエンドを使用する場合、TLS 1.3 の暗号スイートは
CURLOPT_SSL_CIPHER_LIST オプションで設定できます。
PHP 7.3.0 以降かつ cURL 7.61.0 以降で利用可能です。
-
CURLOPT_TLSAUTH_PASSWORD
(int)
-
CURLOPT_TLSAUTH_TYPE オプションで指定された
TLS の認証方法で用いるパスワードを string で指定します。
CURLOPT_TLSAUTH_USERNAME オプションも
合わせて設定する必要があります。
この機能は TLS SRP に依存しており、TLS 1.3 では動作しません。
cURL 7.21.4 以降で利用可能です。
-
CURLOPT_TLSAUTH_TYPE
(int)
-
TLS の認証方法を string で指定します。
サポートされているのは SRP (TLS Secure Remote Password 認証) です。
cURL 7.21.4 以降で利用可能です。
-
CURLOPT_TLSAUTH_USERNAME
(int)
-
CURLOPT_TLSAUTH_TYPE オプションで指定された
TLS の認証方法で用いるユーザー名を string で指定します。
CURLOPT_TLSAUTH_PASSWORD オプションも
合わせて設定する必要があります。
この機能は TLS SRP に依存しており、TLS 1.3 では動作しません。
cURL 7.21.4 以降で利用可能です。
-
CURLOPT_TRANSFER_ENCODING
(int)
-
1 を指定すると、送信される HTTP リクエストで圧縮形式の Transfer Encoding を
要求するようになります。
0 を指定すると無効になります。
サーバーが圧縮形式の Transfer Encoding で応答したなら、
cURL は受信時に自動で展開します。
デフォルト値は 0 です。
cURL 7.21.6 以降で利用可能です。
-
CURLOPT_TRANSFERTEXT
(int)
-
true を指定すると FTP 転送で ASCII モードを使用します。
LDAP では、HTML の代わりにプレーンテキストでデータを取得します。
Windows システムでは、STDOUT をバイナリモードに設定しないようになります。
デフォルト値は false です。
cURL 7.1.1 以降で利用可能です。
-
CURLOPT_UNIX_SOCKET_PATH
(int)
-
接続エンドポイントとして Unix ドメインソケットの使用を有効にし、
指定された string をそのパスとして設定します。
null を設定すると無効になります。
デフォルト値は null です。
PHP 7.0.7 以降かつ cURL 7.40.0 以降で利用可能です。
-
CURLOPT_UNRESTRICTED_AUTH
(int)
-
true を指定すると、(CURLOPT_FOLLOWLOCATION を使って) ロケーションを追跡する際に、
ホスト名が変更されたとしてもユーザー名とパスワードを送り続けます。
デフォルト値は false です。
cURL 7.10.4 以降で利用可能です。
-
CURLOPT_UPKEEP_INTERVAL_MS
(int)
-
一部のプロトコルには「接続保持」メカニズムがあります。これらのメカニズムは通常、
接続を保持するために既存の接続へ何らかのトラフィックを送信します。このオプションは接続保持間隔を設定します。
現在、接続保持メカニズムを持つ唯一のプロトコルは HTTP/2 です。
接続保持間隔を超えると、既存の接続へ HTTP/2 PING フレームが送信されます。
デフォルトは CURL_UPKEEP_INTERVAL_DEFAULT で、
現在は 60 秒です。
PHP 8.2.0 以降かつ cURL 7.62.0 以降で利用可能です。
-
CURLOPT_UPLOAD
(int)
-
true を指定するとアップロードの準備と実行を行います。
デフォルト値は false です。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_UPLOAD_BUFFERSIZE
(int)
-
cURL のアップロードバッファのサイズをバイト単位で指定します。
バッファサイズのデフォルトは 64 キロバイトです。設定可能な最大バッファサイズは 2 メガバイトです。
設定可能な最小バッファサイズは 16 キロバイトです。
PHP 8.2.0 以降かつ cURL 7.62.0 以降で利用可能です。
-
CURLOPT_URL
(int)
-
取得する URL を指定します。この設定は curl_init で
セッションを初期化する際にも指定できます。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_USE_SSL
(int)
-
FTP、SMTP、POP3、IMAP などを使用する際の
転送における SSL/TLS の要求レベルを設定します。
これらのプロトコルはすべて平文で開始し、
STARTTLS コマンドを使用して SSL に「アップグレード」されます。
CURLUSESSL_* 定数のいずれかを設定します。
cURL 7.17.0 以降で利用可能です。
-
CURLOPT_USERAGENT
(int)
-
HTTP リクエストで使われる User-Agent: ヘッダーの内容を指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_USERNAME
(int)
-
認証に用いるユーザー名を指定します。
cURL 7.19.1 以降で利用可能です。
-
CURLOPT_USERPWD
(int)
-
[username]:[password] の形で
接続に用いるユーザー名とパスワードを指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_VERBOSE
(int)
-
true を指定すると、詳細な情報を出力します。
出力は STDERR か、
CURLOPT_STDERR で指定されたファイルへと書き込まれます。
デフォルト値は false です。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_WILDCARDMATCH
(int)
-
1 を指定すると、ファイル名パターンによって複数のファイルを転送します。
パターンは CURLOPT_URL オプションの一部として指定でき、
URL の最後の部分 (ファイル名) で
fnmatch 風のパターン (シェルパターンマッチング) を使用します。
cURL 7.21.0 以降で利用可能です。
-
CURLOPT_WRITEFUNCTION
(int)
-
以下のシグニチャの callable を指定します。
int callback(resource $curlHandle, string $data)
-
curlHandle
-
cURL ハンドル。
-
data
-
書き込むべきデータ。
このコールバックは、データを保存して書き込んだバイト数を返さなければなりません。
そうしないなら、転送はエラーで中止されます (訳注: 一度にすべてのデータを書き込む必要があり、部分的な書き込みはできません。つまり、返り値は渡されたデータ長と一致しなければなりません)。
cURL 7.1.0 以降で利用可能です。
-
転送のヘッダー部が書き込まれるファイルへのファイルハンドルを resource で指定します。
cURL 7.1.0 以降で利用可能です。
-
CURLOPT_WS_OPTIONS
(int)
-
WebSocket の動作オプションを設定するビットマスクを指定します。
利用可能な唯一の選択肢は CURLWS_RAW_MODE です。
デフォルト値は 0 です。
PHP 8.3.0 以降かつ cURL 7.86.0 以降で利用可能です。
-
CURLOPT_XFERINFOFUNCTION
(int)
-
以下のシグニチャの callable を指定します。
int callback(
resource $curlHandle,
int $bytesToDownload,
int $bytesDownloaded,
int $bytesToUpload,
int $bytesUploaded
)
-
curlHandle
-
cURL ハンドル。
-
bytesToDownload
-
この転送でダウンロードされようとしている総バイト数。
-
bytesDownloaded
-
これまでにダウンロードされたバイト数。
-
bytesToUpload
-
この転送でアップロードされようとしている総バイト数。
-
bytesUploaded
-
これまでにアップロードされたバイト数。
転送を中断し、CURLE_ABORTED_BY_CALLBACK エラーをセットするには、
1 を返してください。
PHP 8.2.0 以降かつ cURL 7.32.0 以降で利用可能です。
-
CURLOPT_SERVER_RESPONSE_TIMEOUT
(int)
-
サーバーからのレスポンスを cURL が待機するタイムアウト秒数を指定します。この設定が使われるのは、
FTP サーバー、SFTP サーバー、IMAP サーバー、
SCP サーバー、SMTP サーバー、POP3 サーバーです。
このオプションは、cURL 7.85.0 で非推奨となった
CURLOPT_FTP_RESPONSE_TIMEOUT を置き換えます。
PHP 8.4.0 以降で利用可能です。
-
CURLOPT_XOAUTH2_BEARER
(int)
-
OAuth 2.0 のアクセストークンを指定します。
null を指定すると無効化されます。
デフォルト値は null です。
PHP 7.0.7 以降かつ cURL 7.33.0 以降で利用可能です。
-
CURLOPT_PREREQFUNCTION
(int)
-
以下のシグニチャを持つ callable を指定します。
このコールバックは、接続が確立され、リクエストペイロード
(例えば、HTTP 接続における GET/POST/DELETE リクエスト) が送られる前に呼ばれます。
送信元/送信先 IP アドレスやポート番号に応じて接続を中止したり許可したりするのに
用いることができます。
int callback(
CurlHandle $curlHandle,
string $destination_ip,
string $local_ip,
int $destination_port,
int $local_port
)
-
curlHandle
-
cURL ハンドル。
-
destination_ip
-
この接続で確立されたリモートサーバーのプライマリー IP アドレス。
FTP の場合は、制御用接続の IP アドレスになります。
IPv6 のアドレスは、角括弧で囲わずに表現されます。
-
local_ip
-
この接続の送信元 IP アドレス。
IPv6 のアドレスは、角括弧で囲わずに表現されます。
-
destination_port
-
この接続で確立されたリモートサーバーのプライマリーポート番号。
FTP の場合は、制御用接続のポート番号になります。
プロトコルに応じて、TCP または UDP のポート番号になります。
-
local_port
-
この接続の送信元ポート番号。
プロトコルに応じて、TCP または UDP のポート番号になります。
リクエストを許可する場合は CURL_PREREQFUNC_OK を、
転送を中止する場合は CURL_PREREQFUNC_ABORT を返してください。
PHP 8.4.0 以降かつ cURL 7.80.0 以降で利用可能です。
-
CURLOPT_DEBUGFUNCTION
(int)
-
PHP 8.4.0 以降で利用可能です。
このオプションを利用するには CURLOPT_VERBOSE オプションを有効にする必要があります。
cURL 標準の詳細出力を置き換える callable を指定します。
このコールバックは、リクエストのさまざまな段階で詳細なデバッグ情報とともに呼び出されます。
これは以下のシグニチャである必要があります。
void callback(CurlHandle $curlHandle, int $type, string $data)
-
curlHandle
-
cURL ハンドル。
-
type
-
data の値の種類を表す以下の定数のいずれか:
-
CURLINFO_TEXT
(int)
-
なんらかの情報を表すテキスト。
-
相手から受信したヘッダー (あるいはヘッダーのような) データ。
-
相手に送信したヘッダー (あるいはヘッダーのような) データ。
-
CURLINFO_DATA_IN
(int)
-
相手から受信した未処理のプロトコルデータ。
データがエンコードされていたり圧縮されていたりしたとしても、デコードされたデータや展開されたデータがコールバックへ渡されることはありません。
-
CURLINFO_DATA_OUT
(int)
-
相手に送信したプロトコルデータ。
-
CURLINFO_SSL_DATA_IN
(int)
-
相手から受信した SSL/TLS の (バイナリ) データ。
-
CURLINFO_SSL_DATA_OUT
(int)
-
相手に送信した SSL/TLS の (バイナリ) データ。
-
data
-
type パラメーターで示された種類の詳細なデバッグデータ。