定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

以下の定数の説明と使い方は、 curl_setopt(), curl_multi_setopt(), curl_getinfo() のドキュメントで説明しています。

定数 説明
CURLALTSVC_H1 (int) PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。
CURLALTSVC_H2 (int) PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。
CURLALTSVC_H3 (int) PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。
CURLALTSVC_READONLYFILE (int) PHP 8.2.0 以降 および cURL 7.64.1 以降で利用可能です。
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int) PHP 8.2.0 以降 および cURL 7.75.0 以降で利用可能です。
CURLAUTH_BASIC (int)
CURLAUTH_BEARER (int) PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLAUTH_DIGEST (int)
CURLAUTH_DIGEST_IE (int) IE フレーバーと HTTP Digest 認証を使います。 cURL 7.19.3 以降で利用可能です。
CURLAUTH_GSSAPI (int) PHP 7.3.0 以降 および cURL 7.54.1 以降で利用可能です。
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int) PHP 7.0.7 以降 および cURL 7.38.0 以降で利用可能です。
CURLAUTH_NONE (int) cURL 7.10.6 以降で利用可能です。
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int) PHP 7.0.7 以降 および cURL 7.22.0 以降で利用可能です。
CURLAUTH_ONLY (int) これはメタシンボルです。 この値と単一の特別な認証の値を組み合わせることで、 libcurl に制限なしの認証を試みさせ、 それが失敗した場合、単一の認証アルゴリズムを受け入れさせるようにします。 cURL 7.21.3 以降で利用可能です。
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLFTPMETHOD_DEFAULT (int) PHP 8.2.0 以降 および cURL 7.15.3 以降で利用可能です。
CURLFTPMETHOD_MULTICWD (int) 指定された URL 中の個別の path 部分に CWD 操作を行います。 cURL 7.15.3 以降で利用可能です。
CURLFTPMETHOD_NOCWD (int) CWD を全く実行しません。 SIZE, RETR, STOR などを実行し、 これらのコマンドに対して、サーバーのフルパスを指定します。 cURL 7.15.3 以降で利用可能です。
CURLFTPMETHOD_SINGLECWD (int) ディレクトリ全体に対して一度 CWD を実行してから、 multicwd の場合のように、ファイルを操作します。 cURL 7.15.3 以降で利用可能です。
CURLFTPSSL_ALL (int)
CURLFTPSSL_CCC_ACTIVE (int) シャットダウンを発行し、応答を待ちます。 cURL 7.16.2 以降で利用可能です。
CURLFTPSSL_CCC_NONE (int) CCC (Clear Command Channel) を使いません。 cURL 7.16.2 以降で利用可能です。
CURLFTPSSL_CCC_PASSIVE (int) シャットダウンを発行せず、サーバーが発行するのを待ちます。 応答を送信しません。 cURL 7.16.1 以降で利用可能です。
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPSSL_TRY (int)
CURLFTP_CREATE_DIR (int) PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。
CURLFTP_CREATE_DIR_NONE (int) PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。
CURLFTP_CREATE_DIR_RETRY (int) PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。
CURLGSSAPI_DELEGATION_FLAG (int) GSSAPI クレデンシャルの委譲を許可します。 cURL 7.22.0 以降で利用可能です。
CURLGSSAPI_DELEGATION_POLICY_FLAG (int) GSS-API の実装がこの機能をサポートしている場合、 かつ GSS_C_DELEG_POLICY_FLAG がコンパイル時に定義されている場合には、 サービスチケットに OK-AS-DELEGATE フラグが設定されている場合に限り委譲を行います。 cURL 7.22.0 以降で利用可能です。
CURLHEADER_SEPARATE (int) PHP 7.0.7 以降 および cURL 7.37.0 以降で利用可能です。
CURLHEADER_UNIFIED (int) PHP 7.0.7 以降 および cURL 7.37.0 以降で利用可能です。
CURLHSTS_ENABLE (int) PHP 8.2.0 以降 および cURL 7.74.0 以降で利用可能です。
CURLHSTS_READONLYFILE (int) PHP 8.2.0 以降 および cURL 7.74.0 以降で利用可能です。
CURLKHMATCH_LAST (int) PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。
CURLKHMATCH_MISMATCH (int) PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。
CURLKHMATCH_MISSING (int) PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。
CURLKHMATCH_OK (int) PHP 8.3.0 以降 および cURL 7.19.6 以降で利用可能です。
CURLMIMEOPT_FORMESCAPE (int) PHP 8.3.0 以降 および cURL 7.81.0 以降で利用可能です。
CURLMSG_DONE (int)
CURLPIPE_HTTP1 (int) cURL 7.43.0 以降で利用可能です。
CURLPIPE_MULTIPLEX (int) cURL 7.43.0 以降で利用可能です。
CURLPIPE_NOTHING (int) cURL 7.43.0 以降で利用可能です。
CURLPROXY_HTTP (int) cURL 7.10 以降で利用可能です。
CURLPROXY_HTTPS (int) PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。
CURLPROXY_HTTP_1_0 (int) PHP 7.0.7 以降 および cURL 7.19.3 以降で利用可能です。
CURLPROXY_SOCKS4 (int) cURL 7.10 以降で利用可能です。
CURLPROXY_SOCKS4A (int) cURL 7.18.0 以降で利用可能です。
CURLPROXY_SOCKS5 (int) cURL 7.10 以降で利用可能です。
CURLPROXY_SOCKS5_HOSTNAME (int) cURL 7.18.0 以降で利用可能です。
CURLPX_BAD_ADDRESS_TYPE (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_BAD_VERSION (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_CLOSED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_GSSAPI (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_GSSAPI_PERMSG (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_GSSAPI_PROTECTION (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_IDENTD (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_IDENTD_DIFFER (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_LONG_HOSTNAME (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_LONG_PASSWD (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_LONG_USER (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_NO_AUTH (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_OK (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_RECV_ADDRESS (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_RECV_AUTH (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_RECV_CONNECT (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_RECV_REQACK (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_COMMAND_NOT_SUPPORTED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_CONNECTION_REFUSED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_GENERAL_SERVER_FAILURE (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_HOST_UNREACHABLE (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_NETWORK_UNREACHABLE (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_NOT_ALLOWED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_TTL_EXPIRED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REPLY_UNASSIGNED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_REQUEST_FAILED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_RESOLVE_HOST (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_SEND_AUTH (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_SEND_CONNECT (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_SEND_REQUEST (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_UNKNOWN_FAIL (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_UNKNOWN_MODE (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLPX_USER_REJECTED (int) PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLSSH_AUTH_AGENT (int) PHP 7.0.7 以降 および cURL 7.28.0 以降で利用可能です。
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_GSSAPI (int) PHP 7.3.0 以降 および cURL 7.58.0 以降で利用可能です。
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLSSLOPT_ALLOW_BEAST (int) cURL 7.25. 以降で利用可能です。
CURLSSLOPT_AUTO_CLIENT_CERT (int) PHP 8.2.0 以降 および cURL 7.77.0 以降で利用可能です。
CURLSSLOPT_NATIVE_CA (int) PHP 8.2.0 以降 および cURL 7.71.0 以降で利用可能です。
CURLSSLOPT_NO_PARTIALCHAIN (int) PHP 8.2.0 以降 および cURL 7.68.0 以降で利用可能です。
CURLSSLOPT_NO_REVOKE (int) PHP 7.0.7 以降 および cURL 7.44.0 以降で利用可能です。
CURLSSLOPT_REVOKE_BEST_EFFORT (int) PHP 8.2.0 以降 および cURL 7.70.0 以降で利用可能です。
CURLUSESSL_ALL (int) 全ての通信に SSL を要求するか、 CURLE_USE_SSL_FAILED で失敗します。 cURL 7.17.0 以降で利用可能です。
CURLUSESSL_CONTROL (int) 制御接続(コントロールコネクション) について SSL を要求するか、 CURLE_USE_SSL_FAILED で失敗します。 cURL 7.17.0 以降で利用可能です。
CURLUSESSL_NONE (int) SSL を利用しません。 cURL 7.17.0 以降で利用可能です。
CURLUSESSL_TRY (int) SSL を利用しようとしますが、利用できなければ通常の接続を試みます。 ネゴシエーションが失敗した場合、サーバーの接続が閉じる可能性があることに注意しましょう。 cURL 7.17.0 以降で利用可能です。
CURLVERSION_NOW (int)
CURLWS_RAW_MODE (int) PHP 8.3.0 以降 および cURL 7.86.0 以降で利用可能です。
CURL_FNMATCHFUNC_FAIL (int) エラーが発生した場合、ワイルドカードマッチのコールバック関数を返します。 cURL 7.21.0 以降で利用可能です。
CURL_FNMATCHFUNC_MATCH (int) 文字列にパターンがマッチした場合、 ワイルドカードマッチのコールバック関数を返します。 cURL 7.21.0 以降で利用可能です。
CURL_FNMATCHFUNC_NOMATCH (int) 文字列にパターンがマッチしない場合、 ワイルドカードマッチのコールバック関数を返します。 cURL 7.21.0 以降で利用可能です。
CURL_HTTP_VERSION_1_0 (int)
CURL_HTTP_VERSION_1_1 (int)
CURL_HTTP_VERSION_2 (int) PHP 7.0.7 以降 および cURL 7.43.0 以降で利用可能です。
CURL_HTTP_VERSION_2TLS (int) PHP 7.0.7 以降 および cURL 7.47.0 以降で利用可能です。
CURL_HTTP_VERSION_2_0 (int) cURL 7.33. 以降で利用可能です。
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int) PHP 7.0.7 以降 および cURL 7.49.0 以降で利用可能です。
CURL_HTTP_VERSION_3 (int) PHP 8.4.0 以降 および cURL 7.66.0 以降で利用可能です。
CURL_HTTP_VERSION_3ONLY (int) PHP 8.4.0 以降 および cURL 7.88.0 以降で利用可能です。
CURL_HTTP_VERSION_NONE (int)
CURL_IPRESOLVE_V4 (int) 接続を確立する際に、IPv4 アドレスのみを使うか、 コネクションプールから接続を選択します。 cURL 7.10.8 以降で利用可能です。
CURL_IPRESOLVE_V6 (int) 接続を確立する際に、IPv6 アドレスのみを使うか、 コネクションプールから接続を選択します。 cURL 7.10.8 以降で利用可能です。
CURL_IPRESOLVE_WHATEVER (int) システムから許可された全ての IP のバージョンのアドレスを使います。 cURL 7.10.8 以降で利用可能です。
CURL_MAX_READ_SIZE (int) PHP 7.3.0 以降 および cURL 7.53.0 以降で利用可能です。
CURL_NETRC_IGNORED (int)
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_REQUIRED (int)
CURL_PUSH_DENY (int) PHP 7.1.0 以降 および cURL 7.44.0 以降で利用可能です。
CURL_PUSH_OK (int) PHP 7.1.0 以降 および cURL 7.44.0 以降で利用可能です。
CURL_READFUNC_PAUSE (int) cURL 7.18.0 以降で利用可能です。
CURL_REDIR_POST_301 (int) PHP 7.0.7 以降 および cURL 7.18.2 以降で利用可能です。
CURL_REDIR_POST_302 (int) PHP 7.0.7 以降 および cURL 7.18.2 以降で利用可能です。
CURL_REDIR_POST_303 (int) PHP 7.0.7 以降 および cURL 7.25.1 以降で利用可能です。
CURL_REDIR_POST_ALL (int) PHP 7.0.7 以降 および cURL 7.18.2 以降で利用可能です。
CURL_RTSPREQ_ANNOUNCE (int) クライアントが送信した場合、このメソッドはセッションの説明を変更します。 ANNOUNCE は、 HTTP PUT や POST のような動作をします。 これは CURL_RTSPREQ_SET_PARAMETER と同様です。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_DESCRIBE (int) ストリームの低レベルな説明を取得するために使います。 アプリケーションは、自分が理解しているフォーマットを Accept: ヘッダに記述する必要があります。 手動で設定しない限り、 libcurl は自動的に Accept: application/sdp を追加します。 CURLOPT_TIMECONDITION オプションを使うと、DESCRIBE リクエストに時刻に関する条件のヘッダを追加します。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_GET_PARAMETER (int) サーバーからパラメータを取得します。 デフォルトでは、libcurl は Content-Type: text/parameters ヘッダを全ての空でないリクエストに追加します。 カスタムのヘッダが設定されない限り、これは行われます。 GET_PARAMETER は、HTTP PUT や POST のように振る舞います。 ハートビートメッセージを送信したいアプリケーションは、 空の GET_PARAMETER リクエストを使うべきです。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_OPTIONS (int) サーバーで利用可能なメソッドを取得するために使います。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_PAUSE (int) PAUSE コマンドをサーバーに送信します。 CURLOPT_RANGE を単一の値と一緒に使い、 ストリームを停止すべきタイミング(例: npt=25) を指定します。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_PLAY (int) PLAY コマンドをサーバーに送信します。 再生時間を変更するには、 CURLOPT_RANGE オプションを使います(例: npt=10-15)。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_RECEIVE (int) この値を RTSP リクエストタイプに設定すると、 インターリーブされた RTP データを受信できます。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_RECORD (int) サーバーにセッションを記録するように指示します。 記録する時間を変更するには、 CURLOPT_RANGE オプションを使います。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_SETUP (int) セッションの transport layer を初期化するために使います。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_SET_PARAMETER (int) サーバー上のパラメーターを設定します。 cURL 7.20.0 以降で利用可能です。
CURL_RTSPREQ_TEARDOWN (int) RTSP セッションを終了します。 単純に接続を閉じただけでは、RTSP セッションは終了しません。 なぜなら、異なる接続から RTSP セッションを制御するのは正当なためです。 cURL 7.20.0 以降で利用可能です。
CURL_SSLVERSION_DEFAULT (int)
CURL_SSLVERSION_MAX_DEFAULT (int) PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。
CURL_SSLVERSION_MAX_NONE (int) PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。
CURL_SSLVERSION_MAX_TLSv1_0 (int) PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。
CURL_SSLVERSION_MAX_TLSv1_1 (int) PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。
CURL_SSLVERSION_MAX_TLSv1_2 (int) PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。
CURL_SSLVERSION_MAX_TLSv1_3 (int) PHP 7.3.0 以降 および cURL 7.54.0 以降で利用可能です。
CURL_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1 (int)
CURL_SSLVERSION_TLSv1_0 (int)
CURL_SSLVERSION_TLSv1_1 (int)
CURL_SSLVERSION_TLSv1_2 (int)
CURL_SSLVERSION_TLSv1_3 (int) PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_TIMECOND_NONE (int)
CURL_TLSAUTH_SRP (int) cURL 7.21.4 以降で利用可能です。
CURL_VERSION_ALTSVC (int) PHP 7.3.6 以降 および cURL 7.64.1 以降で利用可能です。
CURL_VERSION_ASYNCHDNS (int) 非同期で DNS の名前解決を行います。 PHP 7.3.0 以降 および cURL 7.10.7 以降で利用可能です。
CURL_VERSION_BROTLI (int) PHP 7.3.0 以降 および cURL 7.57.0 以降で利用可能です。
CURL_VERSION_CONV (int) 文字変換をサポートします。 PHP 7.3.0 以降 および cURL 7.15.4 以降で利用可能です。
CURL_VERSION_CURLDEBUG (int) デバッグ用途に、メモリ追跡をサポートします。 PHP 7.3.6 以降 および cURL 7.19.6 以降で利用可能です。
CURL_VERSION_DEBUG (int) デバッグ機能を有効にしてビルドします。 PHP 7.3.0 以降 および cURL 7.10.6 以降で利用可能です。
CURL_VERSION_GSASL (int) PHP 8.2.0 以降 および cURL 7.76.0 以降で利用可能です。
CURL_VERSION_GSSAPI (int) GSS-API ライブラリを組み込んでビルドします。 PHP 7.3.0 以降 および cURL 7.38.0 以降で利用可能です。
CURL_VERSION_GSSNEGOTIATE (int) Negotiate auth をサポートします。 PHP 7.3.0 以降 および cURL 7.10.6 (cURL 7.38.0 以降では非推奨) 以降で利用可能です。
CURL_VERSION_HSTS (int) PHP 8.2.0 以降 および cURL 7.74.0 以降で利用可能です。
CURL_VERSION_HTTP2 (int) HTTP2 サポートを組み込みます。 cURL 7.33. 以降で利用可能です。
CURL_VERSION_HTTP3 (int) PHP 8.2.0 以降 および cURL 7.66.0 以降で利用可能です。
CURL_VERSION_HTTPS_PROXY (int) PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。
CURL_VERSION_IDN (int) IDN (国際化ドメイン名) をサポートします。 PHP 7.3.0 以降 および cURL 7.12.0 以降で利用可能です。
CURL_VERSION_IPV6 (int) IPv6-enabled.
CURL_VERSION_KERBEROS4 (int) Kerberos V4 による認証をサポートします。
CURL_VERSION_KERBEROS5 (int) Kerberos V5 による認証をサポートします。 PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。
CURL_VERSION_LARGEFILE (int) 2GB 以上のファイルをサポートします。 cURL 7.33.0 以降で利用可能です。
CURL_VERSION_LIBZ (int) libz features are present.
CURL_VERSION_MULTI_SSL (int) PHP 7.3.0 以降 および cURL 7.56.0 以降で利用可能です。
CURL_VERSION_NTLM (int) NTLM 認証をサポートします。 PHP 7.3.0 以降 および cURL 7.10.6 以降で利用可能です。
CURL_VERSION_NTLM_WB (int) winbind ヘルパに対する NTLM 委譲をサポートします。 PHP 7.3.0 以降 および cURL 7.22.0 以降で利用可能です。
CURL_VERSION_PSL (int) Mozilla の Public Suffix List。 Cookie ドメインの検証に使います。 PHP 7.3.6 以降 および cURL 7.47.0 以降で利用可能です。
CURL_VERSION_SPNEGO (int) SPNEGO 認証をサポートします。 PHP 7.3.0 以降 および cURL 7.10.8 以降で利用可能です。
CURL_VERSION_SSL (int) SSL オプションが存在します。
CURL_VERSION_SSPI (int) Windows SSPI を有効にしてビルドします。 PHP 7.3.0 以降 および cURL 7.13.2 以降で利用可能です。
CURL_VERSION_TLSAUTH_SRP (int) TLS-SRP 認証をサポートします。 PHP 7.3.0 以降 および cURL 7.21.4 以降で利用可能です。
CURL_VERSION_UNICODE (int) PHP 8.2.0 以降 および cURL 7.72.0 以降で利用可能です。
CURL_VERSION_UNIX_SOCKETS (int) Unix ドメインソケットをサポートします。 PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。
CURL_VERSION_ZSTD (int) PHP 8.2.0 以降 および cURL 7.72.0 以降で利用可能です。
CURL_WRITEFUNC_PAUSE (int) cURL 7.18.0 以降で利用可能です。
CURL_PREREQFUNC_OK (int) PHP 8.4.0 以降 および cURL 7.80.0 以降で利用可能です。
CURL_PREREQFUNC_ABORT (int) PHP 8.4.0 以降 および cURL 7.80.0 以降で利用可能です。
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_CTRLCURLALTSVC_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 の形式の stringarray で受け付けます。 PHP 7.0.7 以降かつ cURL 7.49.0 以降で利用可能です。

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 はメモリ上に保持されているすべてのセッションクッキーを削除し、 , FLUSHCURLOPT_COOKIEJAR で指定されたファイルにすべてのクッキーを書き出し、 , RELOADCURLOPT_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_CHECKX509_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 リクエストを送る際、GETHEAD の代わりに用いるカスタムのリクエストメソッドを指定します。 DELETE や、その他マイナーな HTTP リクエストを送りたいときに便利です。 有効な値は、GETPOSTCONNECT などといったものです。 つまり、ここに完全な 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 で指定します。 これを指定するとレスポンスをデコードするようになります。サポートされているエンコーディングは、 identity, deflate, gzip です。 空の 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 を渡します。 コールバックのシグニチャは以下のとおりです。

callback(resource $curlHandle, string $pattern, string $string): int
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 を指定すると、EPRTLPRT を無効にし 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 以降で利用可能です。

CURLOPT_HEADER (int)

true を指定すると、CURLOPT_WRITEFUNCTION で定義されたコールバックへと渡される出力に ヘッダーが含まれるようになります。 cURL 7.1.0 以降で利用可能です。

CURLOPT_HEADERFUNCTION (int)

以下のシグニチャの callable を指定します。

callback(resource $curlHandle, string $headerData): int
curlHandle
cURL ハンドル。
headerData
このコールバックが書き込まなければならないヘッダーデータ。
このコールバックは、書き込んだバイト数を返さなければなりません。 cURL 7.7.2 以降で利用可能です。

CURLOPT_HEADEROPT (int)

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 以降で利用可能です。

CURLOPT_HTTPHEADER (int)

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=NTLMAUTH=* を介した優先認証メカニズムなど、 プロトコル固有のログインオプションを設定します。 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 メールリクエストでサーバーに渡す受信者を、 stringarray で設定します。 それぞれの受信者は、対になった山括弧 (><) で囲んで指定する必要があります。 最初の文字が山括弧でない場合、 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 を指定します。

callback(resource $curlHandle, string $passwordPrompt, int $maximumPasswordLength): string
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&para2=val2&...' のような URL エンコードされた string か、 フィールド名をキー、フィールドデータを値とする array のいずれかを渡すことができます。 valuearray の場合、 Content-Type ヘッダーは multipart/form-data に設定されます。 ファイルは CURLFile または CURLStringFile を使って送信でき、 その場合 valuearray でなければなりません。 cURL 7.1.0 以降で利用可能です。

CURLOPT_POSTQUOTE (int)

FTP リクエストが実行された後にサーバーで実行する FTP コマンドを stringarray で指定します。 cURL 7.1.0 以降で利用可能です。

CURLOPT_POSTREDIR (int)

CURL_REDIR_POST_301CURL_REDIR_POST_302CURL_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 コマンドを stringarray で指定します。 これらのコマンドはディレクトリ列挙を行う際には実行されず、 ファイル転送のみで実行されます。 cURL 7.9.5 以降で利用可能です。

CURLOPT_PRIVATE (int)

この cURL ハンドルに関連付ける任意のデータを指定します。 このデータは、後に curl_getinfo()CURLINFO_PRIVATE オプションを使って取得できます。 cURL はこのデータに対して何も行いません。 cURL のマルチハンドルを使用する場合、このプライベートデータには通常 標準的な cURL ハンドルを識別するための一意なキーを指定します。 cURL 7.10.3 以降で利用可能です。

CURLOPT_PROGRESSFUNCTION (int)

以下のシグニチャの callable を指定します。

callback(
    resource $curlHandle,
    int $bytesToDownload,
    int $bytesDownloaded,
    int $bytesToUpload,
    int $bytesUploaded
): int
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_BASICCURLAUTH_NTLM のみがサポートされています。 デフォルト値は CURLAUTH_BASIC です。 cURL 7.10.7 以降で利用可能です。

CURLOPT_PROXYHEADER (int)

プロキシに渡すカスタム HTTP ヘッダーを stringarray で指定します。 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 以外では、サポートされている形式は PEMDER です。 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 で指定します。 サポートされている形式は以下のとおりです: PEM, DER, ENG。 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 以降では 12 と同じ値として扱われます。 デフォルト値は 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_READDATACURLOPT_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 コマンドを stringarray で指定します。 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 を指定します。

callback(resource $curlHandle, resource $streamResource, int $maxAmountOfDataToRead): string
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 はデフォルトで FILESCP を除く すべてのプロトコルで追跡を許可します。 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 以降、デフォルトは FTPFTPSHTTPHTTPS です。 cURL 7.40.0 から 7.65.1 では、 FILESCPSMBSMBS を除くすべてのプロトコルがデフォルトでした。 cURL 7.40.0 より前は、FILESCP を除く すべてのプロトコルがデフォルトでした。 利用可能なプロトコルは以下のとおりです: 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)

特定のホスト・ポートの組み合わせに対するカスタムアドレスを、 コロン区切りの stringarray で指定します。 具体的な形式は以下のとおりです: 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 を指定します。 このコールバックは、以下のシグニチャである必要があります。

callback(
    resource $curlHandle,
    int $keyType,
    string $key,
    int $keyLength
): int
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 で指定します。サポートされているフォーマット: PEM, DER, ENG, P12 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, DER, ENG デフォルト値は 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_SSLv2CURL_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 以降で利用可能です。

CURLOPT_SUPPRESS_CONNECT_HEADERS (int)

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 ネゴシエーションに渡す stringarray を指定します。 変数は >option=value< 形式である必要があります。 cURLは、TTYPEXDISPLOCNEW_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_HEADERtrue に設定しておく必要があります)。 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 を指定します。

callback(resource $curlHandle, string $data): int
curlHandle
cURL ハンドル。
data
書き込むべきデータ。
このコールバックは、データを保存して書き込んだバイト数を返さなければなりません。 そうしないなら、転送はエラーで中止されます (訳注: 一度にすべてのデータを書き込む必要があり、部分的な書き込みはできません。つまり、返り値は渡されたデータ長と一致しなければなりません)。 cURL 7.1.0 以降で利用可能です。

CURLOPT_WRITEHEADER (int)

転送のヘッダー部が書き込まれるファイルへのファイルハンドルを 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 を指定します。

callback(
    resource $curlHandle,
    int $bytesToDownload,
    int $bytesDownloaded,
    int $bytesToUpload,
    int $bytesUploaded
): int
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 アドレスやポート番号に応じて接続を中止したり許可したりするのに 用いることができます。

callback(
    CurlHandle $curlHandle,
    string $destination_ip,
    string $local_ip,
    int $destination_port,
    int $local_port
): int
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 を指定します。 このコールバックは、リクエストのさまざまな段階で詳細なデバッグ情報とともに呼び出されます。 これは以下のシグニチャである必要があります。

callback(CurlHandle $curlHandle, int $type, string $data): void
curlHandle
cURL ハンドル。
type
data の値の種類を表す以下の定数のいずれか:
定数 説明
CURLINFO_TEXT (int) なんらかの情報を表すテキスト。
CURLINFO_HEADER_IN (int) 相手から受信したヘッダー (あるいはヘッダーのような) データ。
CURLINFO_HEADER_OUT (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 パラメーターで示された種類の詳細なデバッグデータ。

curl_share_setopt()
定数 説明
CURL_LOCK_DATA_CONNECT (int) 接続キャッシュを共有/非共有にします。 PHP 7.3.0 および cURL 7.10.3 以降で使用可能です。
Cookie データを共有/非共有にします。 cURL 7.10.3 以降で使用可能です。
CURL_LOCK_DATA_DNS (int) DNS キャッシュを共有/非共有にします。 cURL 7.10.3 以降で使用可能です。 このオプションを cURL マルチハンドルで使う場合、 同一のマルチハンドルに追加される全てのハンドルは、 デフォルトで DNS キャッシュを共有する点に注意しましょう。
CURL_LOCK_DATA_PSL (int) Public Suffix List を共有/非共有にします。 PHP 7.3.0 および cURL 7.61.0 以降で使用可能です。
CURL_LOCK_DATA_SSL_SESSION (int) SSL セッションID を 共有/非共有化にし、 同じサーバーに再接続する際の SSL ハンドシェイクにかかる時間を短縮します。 SSL セッションID は、同一ハンドル内ではデフォルトで再利用されます。 cURL 7.10.3 以降で使用可能です。
CURLSHOPT_NONE (int) cURL 7.10.3 以降で使用可能です。
CURLSHOPT_SHARE (int) 共有すべきデータのタイプを指定します。 cURL 7.10.3 以降で使用可能です。
CURLSHOPT_UNSHARE (int) 共有しないデータのタイプを指定します。 cURL 7.10.3 以降で使用可能です。
curl_getinfo()
定数 説明
CURLINFO_APPCONNECT_TIME (int) 処理開始から、リモートホストとの SSL/SSH 接続/ハンドシェイクが完了するまでの、かかった時間の合計(秒単位)。
CURLINFO_APPCONNECT_TIME_T (int) 処理開始から、リモートホストとの SSL/SSH 接続/ハンドシェイクが完了するまでの、かかった時間の合計(マイクロ秒単位)。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_CAINFO (int) デフォルトで組み込まれた CA 証明書のパス。 PHP 8.3.0 以降 および cURL 7.84.0 以降で利用可能です。
CURLINFO_CAPATH (int) デフォルトで組み込まれた CA のパスの文字列。 PHP 8.3.0 以降 および cURL 7.84.0 以降で利用可能です。
CURLINFO_CERTINFO (int) TLS 証明書チェイン
CURLINFO_CONDITION_UNMET (int) 時間に関する条件が満たされなかった場合の情報
CURLINFO_CONNECT_TIME (int) 接続を確立するまでにかかった時間(秒単位)
CURLINFO_CONNECT_TIME_T (int) 処理開始から、リモートホスト(またはプロキシ)への接続が完了するまでの、かかった時間の合計(マイクロ秒単位)。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_CONTENT_LENGTH_DOWNLOAD (int) ダウンロードしたコンテンツのサイズ。 Content-Length: サイズから読み取ります。
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (int) ダウンロードしたコンテンツのサイズ。 Content-Length: サイズから読み取った値ですが、 サイズが不明な場合は -1 になります。 PHP 7.3.0 以降 および cURL 7.55.0 以降で利用可能です。
CURLINFO_CONTENT_LENGTH_UPLOAD (int) 指定されたアップロードサイズ
CURLINFO_CONTENT_LENGTH_UPLOAD_T (int) 指定されたアップロードサイズ。 不明な場合は -1 になります。 PHP 7.3.0 以降 および cURL 7.55.0 以降で利用可能です。
CURLINFO_CONTENT_TYPE (int) リクエストされた文書の Content-Type。 NULL の場合は、サーバーが正しい Content-Type を送信しなかったことを示します。
CURLINFO_COOKIELIST (int) 全ての既知の Cookie
CURLINFO_EFFECTIVE_METHOD (int) 直近で使用した HTTP メソッド
CURLINFO_EFFECTIVE_URL (int) 直近の有効な URL
CURLINFO_FILETIME (int) CURLOPT_FILETIME が有効な場合は、取得したドキュメントのリモート時刻。 -1 が返された場合、ドキュメントの時刻は不明です。
CURLINFO_FILETIME_T (int) 取得したドキュメントのリモート時刻を(Unixタイムスタンプとして)取得します。 32ビット長の変数を使うシステムが、32ビットタイムスタンプの範囲外の日付を抽出できるようにする目的で、 CURLINFO_FILETIME の代替として使います。 PHP 7.3.0 以降 および cURL 7.59.0 以降で利用可能です。
CURLINFO_FTP_ENTRY_PATH (int) FTP サーバーのエントリーパス
CURLINFO_HEADER_OUT (int) 送信されたリクエスト文字列。 これを機能させるには、curl_setopt() をコールし、 CURLINFO_HEADER_OUT オプションをハンドルに追加する必要があります。
CURLINFO_HEADER_SIZE (int) 受信した全てのヘッダの合計サイズ
CURLINFO_HTTPAUTH_AVAIL (int) 前回の応答に基づいて、利用可能な認証方法を示すビットマスク
CURLINFO_HTTP_CODE (int) 直近のレスポンスコード。 cURL 7.10.8 以降は、この値は CURLINFO_RESPONSE_CODE のレガシーエイリアスです。
CURLINFO_HTTP_CONNECTCODE (int) CONNECT に対するレスポンスコード
CURLINFO_HTTP_VERSION (int) 直近の HTTP 接続で使用されたバージョン。 戻り値は定義済みの CURL_HTTP_VERSION_* 定数のいずれかです。バージョンが判別できない場合は 0 になります。 PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。
CURLINFO_LASTONE (int) libcurlCURLINFO enum の最後の値
CURLINFO_LOCAL_IP (int) 直近の接続のローカルの(ソース)IPアドレス
CURLINFO_LOCAL_PORT (int) 直近の接続のローカルの(ソース)ポート
CURLINFO_NAMELOOKUP_TIME (int) 名前解決が完了するまでにかかった時間
CURLINFO_NAMELOOKUP_TIME_T (int) 処理開始から、名前解決が開始されるまでの経過時間(秒単位)。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_NUM_CONNECTS (int) 直前の転送を完了するために、curl が作成しなければならなかった接続数
CURLINFO_OS_ERRNO (int) 接続が失敗した際の Errno。 実際の値は OS とシステム依存です。
CURLINFO_PRETRANSFER_TIME (int) 処理開始から、ファイル転送が開始されるまでの経過時間(秒単位)。
CURLINFO_PRETRANSFER_TIME_T (int) ファイル転送が開始される直前までの経過時間(マイクロ秒単位)。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_PRIMARY_IP (int) もっとも直近の接続の IP アドレス
CURLINFO_PRIMARY_PORT (int) 直近の接続先のポート番号
CURLINFO_PRIVATE (int) curl_setopt()CURLOPT_PRIVATE をオプションを以前に設定した場合に、 この cURL ハンドルに関連付けられたプライベートデータ。
CURLINFO_PROTOCOL (int) 直近の HTTP 接続で使用したプロトコル。 返される値は、CURLPROTO_* の値のうち、いずれか1つです。 PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。
CURLINFO_PROXYAUTH_AVAIL (int) 前回の応答に基づいて、利用可能なプロキシ認証方法を示すビットマスク
CURLINFO_PROXY_ERROR (int) 直近の転送でCURLE_PROXY エラーが返された際の、 詳細な(SOCKS)プロキシエラーコード。 返される値は CURLPX_* 値のいずれかひとつです。 応答コードが利用できない場合、エラーコードは CURLPX_OK になります。 PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLINFO_PROXY_SSL_VERIFYRESULT (int) CURLOPT_PROXY_SSL_VERIFYPEER オプションを使用して) 要求した証明書の検証の結果。HTTPS プロキシでのみ使用されます。 PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。
CURLINFO_REDIRECT_COUNT (int) CURLOPT_FOLLOWLOCATION オプションが有効な場合の、 リダイレクトの回数
CURLINFO_REDIRECT_TIME (int) CURLOPT_FOLLOWLOCATION が有効な場合に、 最終トランザクション開始前の、全リダイレクトステップにかかった合計時間(秒単位)
CURLINFO_REDIRECT_TIME_T (int) 最終トランザクションが開始される前に、名前解決、接続、事前転送、 転送を含むすべてのリダイレクトステップにかかった合計時間(マイクロ秒単位)。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_REDIRECT_URL (int) CURLOPT_FOLLOWLOCATION オプションが無効の場合: 直近のトランザクションで検出されたリダイレクト先URL。 このリダイレクト先に、次は手動でリクエストすべきです。 CURLOPT_FOLLOWLOCATION オプションが有効の場合: この場合のリダイレクト先URLは、CURLINFO_EFFECTIVE_URL で利用できます。
CURLINFO_REFERER (int) Referer ヘッダ。 PHP 8.2.0 以降 および cURL 7.76.0 以降で利用可能です。
CURLINFO_REQUEST_SIZE (int) 発行されたリクエストの合計サイズ。 現状は、HTTP リクエスト向けのみです。
CURLINFO_RESPONSE_CODE (int) 最後のレスポンスコード。 cURL 7.10.8 以降で利用可能です。
CURLINFO_RETRY_AFTER (int) Retry-After から取得した情報。 有効なヘッダがない場合は 0 になります。 PHP 8.2.0 以降 および cURL 7.66.0 以降で利用可能です。
CURLINFO_RTSP_CLIENT_CSEQ (int) RTSP クライアントの次の CSeq 番号
CURLINFO_RTSP_CSEQ_RECV (int) 直近に受信した CSeq 番号
CURLINFO_RTSP_SERVER_CSEQ (int) RTSP サーバーとの次の CSeq 番号
CURLINFO_RTSP_SESSION_ID (int) RTSP セッションID
CURLINFO_SCHEME (int) もっとも直近の接続で使用した URL スキーム。 PHP 7.3.0 以降 および cURL 7.52.0 以降で利用可能です。
CURLINFO_SIZE_DOWNLOAD (int) ダウンロードした合計バイト数
CURLINFO_SIZE_DOWNLOAD_T (int) ダウンロードした合計バイト数。 この値は直近の転送のみの値で、新しい転送が行われるたびにリセットされます。 PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。
CURLINFO_SIZE_UPLOAD (int) アップロードした合計バイト数
CURLINFO_SIZE_UPLOAD_T (int) アップロードした合計バイト数 PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。
CURLINFO_SPEED_DOWNLOAD (int) ダウンロード速度の平均
CURLINFO_SPEED_DOWNLOAD_T (int) ダウンロードを完了するまでに curl が計測した、平均ダウンロード速度(バイト/秒)。 PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。
CURLINFO_SPEED_UPLOAD (int) アップロード速度の平均
CURLINFO_SPEED_UPLOAD_T (int) アップロードを完了するまでに curl が計測した、平均アップロード速度(バイト/秒)。 PHP 7.3.0 以降 および cURL 7.50.0 以降で利用可能です。
CURLINFO_SSL_ENGINES (int) サポートされている OpenSSL の暗号化エンジン
CURLINFO_SSL_VERIFYRESULT (int) CURLOPT_SSL_VERIFYPEER で要求した、SSL 証明書の検証結果
CURLINFO_STARTTRANSFER_TIME (int) 最初のバイトが送信される直前までにかかった、秒単位の時間。
CURLINFO_STARTTRANSFER_TIME_T (int) 通信の開始から最初のバイトを受信するまでにかかった、マイクロ秒単位の時間。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_TOTAL_TIME (int) 直近の転送における、トランザクションの合計時間(秒単位)
CURLINFO_TOTAL_TIME_T (int) 以前の転送でかかった、マイクロ秒単位の時間。 転送には、名前解決や TCP 接続などが含まれます。 PHP 7.3.0 以降 および cURL 7.61.0 以降で利用可能です。
CURLINFO_POSTTRANSFER_TIME_T (int) 送信の開始から最後のバイトが送信されるまでにかかった、マイクロ秒単位の時間。 PHP 8.4.0 以降 および cURL 8.10.0 以降で利用可能です。
curl_multi_setopt()
定数 説明
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (int) パイプライン処理における、チャンクの長さのしきい値をバイト単位で指定します。 PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (int) パイプライン処理における、ペナルティのしきい値をバイト単位で指定します。 PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。
CURLMOPT_MAXCONNECTS (int) 同時に開く接続の最大数を指定します。 これを libcurl がキャッシュします。 デフォルトのサイズは、curl_multi_add_handle() で追加したハンドル数の四倍に収まるように拡大されます。 キャッシュがいっぱいになると、curl はキャッシュ内で一番古い接続を閉じ、 開いている接続の数が増えないようにします。 cURL 7.16.3 以降で利用可能です。
CURLMOPT_MAX_CONCURRENT_STREAMS (int) cURL が HTTP/2 接続でサポートすべき同時ストリームの最大数を指定します。 有効な値の範囲は 1 から 21474836472^31 - 1)です。 ここで指定された値は、 他のシステムリソースのプロパティに基づいて適用されます。 デフォルトは 100 です。 PHP 8.2.0 以降 および cURL 7.67.0. 以降で利用可能です。
CURLMOPT_MAX_HOST_CONNECTIONS (int) 単一ホストへの最大接続数を指定します。 PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。
CURLMOPT_MAX_PIPELINE_LENGTH (int) パイプライン内の最大リクエスト数を指定します。 PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。
CURLMOPT_MAX_TOTAL_CONNECTIONS (int) 同時に開くことができる、接続の最大数を指定します。 PHP 7.0.7 以降 および cURL 7.30.0 以降で利用可能です。
CURLMOPT_PIPELINING (int) 1 を指定するとパイプラインが有効になり、 0 を指定すると無効になります。 マルチハンドルでパイプラインを有効にすると、 このハンドルを使用した転送では可能な限り HTTP パイプラインを実行しようとします。 これは、既存の接続を利用可能な2つ目のリクエストを追加すると、 そのリクエストが同じ接続上で "パイプ" されることを意味します。 cURL 7.43.0 以降、この値はビットマスクとなり、 2 を渡すと既存の HTTP/2 接続上で新規転送の多重化を試行します。 3 を渡すと、パイプライン化と多重化を 互いに独立して要求するよう cURL に指示します。 cURL 7.62.0 以降は、パイプラインビットを設定しても効果がありません。 整数リテラルではなく、CURLPIPE_* 定数も使用できます。 cURL 7.16.0 以降で利用可能です。
CURLMOPT_PUSHFUNCTION (int)

サーバープッシュを処理するために登録する callable を渡します。 これは、以下のシグネチャを持ちます:

pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch
親の cURL ハンドル(クライアントが作成したリクエスト)
pushed_ch
プッシュされたリクエスト向けの、新しい cURL ハンドル
headers
push promise のヘッダ
プッシュ関数は、プッシュが処理できる場合は、CURL_PUSH_OK を返し、拒否する場合は CURL_PUSH_DENY を返すことが期待されています。 PHP 7.1.0 以降 および cURL 7.44.0 以降で利用可能です。

cURL protocol 定数
定数 説明
CURLPROTO_ALL (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_DICT (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_FILE (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_FTP (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_FTPS (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_GOPHER (int) cURL 7.21.2 以降で利用可能です。
CURLPROTO_HTTP (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_HTTPS (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_IMAP (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_IMAPS (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_LDAP (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_LDAPS (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_MQTT (int) PHP 8.2.0 以降 および cURL 7.71.0 以降で利用可能です。
CURLPROTO_POP3 (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_POP3S (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_RTMP (int) cURL 7.21.0 以降で利用可能です。
CURLPROTO_RTMPE (int) cURL 7.21.0 以降で利用可能です。
CURLPROTO_RTMPS (int) cURL 7.21.0 以降で利用可能です。
CURLPROTO_RTMPT (int) cURL 7.21.0 以降で利用可能です。
CURLPROTO_RTMPTE (int) cURL 7.21.0 以降で利用可能です。
CURLPROTO_RTMPTS (int) cURL 7.21.0 以降で利用可能です。
CURLPROTO_RTSP (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_SCP (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_SFTP (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_SMB (int) PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。
CURLPROTO_SMBS (int) PHP 7.0.7 以降 および cURL 7.40.0 以降で利用可能です。
CURLPROTO_SMTP (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_SMTPS (int) cURL 7.20.0 以降で利用可能です。
CURLPROTO_TELNET (int) cURL 7.19.4 以降で利用可能です。
CURLPROTO_TFTP (int) cURL 7.19.4 以降で利用可能です。
cURL エラー定数
定数 説明
CURLE_ABORTED_BY_CALLBACK (int) コールバックによって abort されました。 コールバックが libcurl に "abort" を返しました。
CURLE_BAD_CALLING_ORDER (int)
CURLE_BAD_CONTENT_ENCODING (int) 認識できない転送エンコーディングです。
CURLE_BAD_DOWNLOAD_RESUME (int) 指定されたオフセットがファイルの境界の範囲外のため、 ダウンロードを再開できませんでした。
CURLE_BAD_FUNCTION_ARGUMENT (int) 関数が不正な引数を使ってコールされました。
CURLE_BAD_PASSWORD_ENTERED (int)
CURLE_COULDNT_CONNECT (int) ホストまたはプロキシに接続できませんでした。
CURLE_COULDNT_RESOLVE_HOST (int) ホストを解決できませんでした。 指定されたリモートホストが解決できませんでした。
CURLE_COULDNT_RESOLVE_PROXY (int) プロキシを解決できませんでした。 指定されたプロキシホストが解決できませんでした。
CURLE_FAILED_INIT (int) 初期化のはじめの段階で失敗しました。 内部エラーか、 何かしらの基本的な処理が初期化時に行えなかったリソース問題の可能性があります。
CURLE_FILESIZE_EXCEEDED (int) ファイルの最大サイズを超えました。
CURLE_FILE_COULDNT_READ_FILE (int) FILE:// で指定されたファイルが開けませんでした。 これはほとんどの場合、ファイルパスが既存のファイルを指していないか、 適切なファイルパーミッションが欠けていることによって発生します。
CURLE_FTP_ACCESS_DENIED (int)
CURLE_FTP_BAD_DOWNLOAD_RESUME (int)
CURLE_FTP_CANT_GET_HOST (int) 新規接続に指定されたホストのルックアップに、 内部的に失敗しました。
CURLE_FTP_CANT_RECONNECT (int)
CURLE_FTP_COULDNT_GET_SIZE (int)
CURLE_FTP_COULDNT_RETR_FILE (int) 'RETR' コマンドへの応答が想定外であったか、 転送が完了したサイズが0バイトでした。
CURLE_FTP_COULDNT_SET_ASCII (int)
CURLE_FTP_COULDNT_SET_BINARY (int)
CURLE_FTP_COULDNT_STOR_FILE (int)
CURLE_FTP_COULDNT_USE_REST (int) FTP REST コマンドがエラーを返しました。 サーバーが正常であれば、このエラーは決して発生しないはずです。
CURLE_FTP_PARTIAL_FILE (int)
CURLE_FTP_PORT_FAILED (int) FTP PORT コマンドがエラーを返しました。 ほとんどの場合、 これは libcurl が使う十分なアドレスが指定されていない場合に起こります。 CURLOPT_FTPPORT を参照ください。
CURLE_FTP_QUOTE_ERROR (int)
CURLE_FTP_SSL_FAILED (int)
CURLE_FTP_USER_PASSWORD_INCORRECT (int)
CURLE_FTP_WEIRD_227_FORMAT (int) FTP サーバーは、PASV コマンドの応答として、227 応答を返します。 libcurl がこの応答行をパースできない場合、 このエラーコードが返されます。
CURLE_FTP_WEIRD_PASS_REPLY (int) FTP パスワードをサーバーに送信後、 libcurl は適切な応答を期待します。 このエラーコードは、予期しないエラーコードが応答されたことを示します。
CURLE_FTP_WEIRD_PASV_REPLY (int) libcurl は、PASV や EPSV コマンドのレスポンスとして、 サーバーから妥当な結果を取得できませんでした。 サーバーにバグがあります。
CURLE_FTP_WEIRD_SERVER_REPLY (int) サーバーが送信したデータを、libcurl がパースできませんでした。 このエラーコードは、cURL 7.51.0 以降は CURLE_WEIRD_SERVER_REPLY になりました。
CURLE_FTP_WEIRD_USER_REPLY (int)
CURLE_FTP_WRITE_ERROR (int)
CURLE_FUNCTION_NOT_FOUND (int) 関数が見つかりません。 要求されている zlib 関数が見つかりませんでした。
CURLE_GOT_NOTHING (int) サーバーから何も返されませんでした。 条件によっては、何も受信しないことがエラーとみなされます。
CURLE_HTTP_NOT_FOUND (int)
CURLE_HTTP_PORT_FAILED (int)
CURLE_HTTP_POST_ERROR (int) これは主に内部的な処理の混乱によって発生する、奇妙なエラーです。
CURLE_HTTP_RANGE_ERROR (int)
CURLE_HTTP_RETURNED_ERROR (int) CURLOPT_FAILONERRORtrue に設定し、 かつ HTTP サーバーが 400 以上のエラーコードをまえした場合に、 この値が返されます。
CURLE_LDAP_CANNOT_BIND (int) LDAP がバインドできません。 LDAP のバインド操作が失敗しました。
CURLE_LDAP_INVALID_URL (int)
CURLE_LDAP_SEARCH_FAILED (int) LDAP 検索が失敗しました。
CURLE_LIBRARY_NOT_FOUND (int)
CURLE_MALFORMAT_USER (int)
CURLE_OBSOLETE (int)
CURLE_OK (int) 全て順調です。通常通り処理します。
CURLE_OPERATION_TIMEDOUT (int) 条件に基づく、指定されたタイムアウト時間に到達しました。
CURLE_OPERATION_TIMEOUTED (int)
CURLE_OUT_OF_MEMORY (int) メモリ割当てリクエストに失敗しました。
CURLE_PARTIAL_FILE (int) ファイル転送サイズが、期待より大きいか小さいです。 これは、サーバーが最初に期待される転送サイズを報告した後、 そこで指定したサイズと一致しないデータを送信した場合に発生します。
CURLE_PROXY (int) Proxy ハンドシェイクエラー。 CURLINFO_PROXY_ERROR を指定すると、特定の問題に関する詳細が得られます。 PHP 8.2.0 以降 および cURL 7.73.0 以降で利用可能です。
CURLE_READ_ERROR (int) ローカルファイルを読み取る際に問題が発生したか、 読み取りコールバックからエラーが返されました。
CURLE_RECV_ERROR (int) ネットワークデータを受信する処理に失敗しました。
CURLE_SEND_ERROR (int) ネットワークデータを送信する処理に失敗しました。
CURLE_SHARE_IN_USE (int)
CURLE_SSH (int) SSH セッションの間に、不明なエラーが発生しました。 cURL 7.16.1 以降で利用可能です。
CURLE_SSL_CACERT (int)
CURLE_SSL_CACERT_BADFILE (int) SSL CA cert を読み取る際に問題が発生しました。
CURLE_SSL_CERTPROBLEM (int) ローカルのクライアント証明書 を読み取る際に問題が発生しました。
CURLE_SSL_CIPHER (int) 特定の暗号を使えませんでした。
CURLE_SSL_CONNECT_ERROR (int) SSL/TLS ハンドシェイクのどこかで問題が発生しました。 エラーバッファ内のメッセージを読み取ると、問題の詳細が確認できます。 原因としては、証明書(ファイル形式、パス、権限)や、パスワードなどが考えられます。
CURLE_SSL_ENGINE_NOTFOUND (int) 指定された暗号化エンジンが見つかりませんでした。
CURLE_SSL_ENGINE_SETFAILED (int) 選択した SSL 暗号化エンジンを、デフォルト設定にできませんでした。
CURLE_SSL_PEER_CERTIFICATE (int)
CURLE_SSL_PINNEDPUBKEYNOTMATCH (int) CURLOPT_PINNEDPUBLICKEY で指定された 固定鍵と一致しませんでした。
CURLE_TELNET_OPTION_SYNTAX (int)
CURLE_TOO_MANY_REDIRECTS (int) リダイレクトの回数が多過ぎます。 リダイレクトを追跡しましたが、 libcurl がその最大回数に達しました。 この回数は CURLOPT_MAXREDIRS で設定できます。
CURLE_UNKNOWN_TELNET_OPTION (int)
CURLE_UNSUPPORTED_PROTOCOL (int) libcurl に渡された URL が、 サポートしていないプロトコルを指定していました。 コンパイル時にオプションが指定されなかったか、 プロトコルを指定する文字列の間違い、 または、単に libcurl が未実装の可能性があります。
CURLE_URL_MALFORMAT (int) URL が適切にフォーマットされていませんでした。
CURLE_URL_MALFORMAT_USER (int)
CURLE_WEIRD_SERVER_REPLY (int) サーバーが送信したデータをパースできませんでした。 cURL 7.51.0 より前のバージョンでは、 このエラーコードは CURLE_FTP_WEIRD_SERVER_REPLY でした。 PHP 7.3.0 以降 および cURL 7.51.0 以降で利用可能です。
CURLE_WRITE_ERROR (int) 受信したデータをローカルファイルに書き込む際に、エラーが発生しました。 または、libcurl の書き込みコールバックからエラーが返されました。
curl_multi_* 定数
定数 説明
CURLM_ADDED_ALREADY (int) 既にマルチハンドルに追加済みの easy ハンドルを、再度追加しようとしました。 cURL 7.32.1 以降で利用可能です。
CURLM_BAD_EASY_HANDLE (int) easy ハンドルが有効なものではありません。 easy ハンドルではない可能性もありますし、 既にハンドルが、このハンドルまたは別のマルチハンドルから使われているかもしれません。 cURL 7.9.6 以降で利用可能です。
CURLM_BAD_HANDLE (int) 渡されたハンドルが、有効なマルチハンドルではありません。 cURL 7.9.6 以降で利用可能です。
CURLM_CALL_MULTI_PERFORM (int) cURL 7.20.0 以降は、この定数は使われていません。 cURL 7.20.0 より前のバージョンでは、 curl_multi_select() や類似の関数がコールされる際に、 curl_multi_exec() が他の定数を返す前にこのコードを返す可能性がありました。 cURL 7.9.6 以降で利用可能です。
CURLM_INTERNAL_ERROR (int) libcurl の内部エラー。 cURL 7.9.6 以降で利用可能です。
CURLM_OK (int) エラーはありません。 cURL 7.9.6 以降で利用可能です。
CURLM_OUT_OF_MEMORY (int) マルチハンドルを処理中にメモリが枯渇しました。 cURL 7.9.6 以降で利用可能です。
curl_pause()
定数 説明
CURLPAUSE_ALL (int) データの送信と受信を中断します。 cURL 7.18.0 以降で利用可能です。
CURLPAUSE_CONT (int) データの送信と受信を再開します。 cURL 7.18.0 以降で利用可能です。
CURLPAUSE_RECV (int) データの受信を中断します。 cURL 7.18.0 以降で利用可能です。
CURLPAUSE_RECV_CONT (int) データの受信を再開します。 cURL 7.18.0 以降で利用可能です。
CURLPAUSE_SEND (int) データの送信を中断します。 cURL 7.18.0 以降で利用可能です。
CURLPAUSE_SEND_CONT (int) データの送信を再開します。 cURL 7.18.0 以降で利用可能です。
add a note

User Contributed Notes 5 notes

up
29
nimasdj [AT] yahoo [DOT] com
10 years ago
I hope this would be useful to convert error codes:

<?php
$curl_errno = array(
1  => "CURLE_UNSUPPORTED_PROTOCOL",
2  => "CURLE_FAILED_INIT",
3  => "CURLE_URL_MALFORMAT",
4  => "CURLE_URL_MALFORMAT_USER",
5  => "CURLE_COULDNT_RESOLVE_PROXY",
6  => "CURLE_COULDNT_RESOLVE_HOST",
7  => "CURLE_COULDNT_CONNECT",
8  => "CURLE_FTP_WEIRD_SERVER_REPLY",
9  => "CURLE_FTP_ACCESS_DENIED",
10 => "CURLE_FTP_USER_PASSWORD_INCORRECT",
11 => "CURLE_FTP_WEIRD_PASS_REPLY",
12 => "CURLE_FTP_WEIRD_USER_REPLY",
13 => "CURLE_FTP_WEIRD_PASV_REPLY",
14 => "CURLE_FTP_WEIRD_227_FORMAT",
15 => "CURLE_FTP_CANT_GET_HOST",
16 => "CURLE_FTP_CANT_RECONNECT",
17 => "CURLE_FTP_COULDNT_SET_BINARY",
18 => "CURLE_FTP_PARTIAL_FILE or CURLE_PARTIAL_FILE",
19 => "CURLE_FTP_COULDNT_RETR_FILE",
20 => "CURLE_FTP_WRITE_ERROR",
21 => "CURLE_FTP_QUOTE_ERROR",
22 => "CURLE_HTTP_NOT_FOUND or CURLE_HTTP_RETURNED_ERROR",
23 => "CURLE_WRITE_ERROR",
24 => "CURLE_MALFORMAT_USER",
25 => "CURLE_FTP_COULDNT_STOR_FILE",
26 => "CURLE_READ_ERROR",
27 => "CURLE_OUT_OF_MEMORY",
28 => "CURLE_OPERATION_TIMEDOUT or CURLE_OPERATION_TIMEOUTED",
29 => "CURLE_FTP_COULDNT_SET_ASCII",
30 => "CURLE_FTP_PORT_FAILED",
31 => "CURLE_FTP_COULDNT_USE_REST",
32 => "CURLE_FTP_COULDNT_GET_SIZE",
33 => "CURLE_HTTP_RANGE_ERROR",
34 => "CURLE_HTTP_POST_ERROR",
35 => "CURLE_SSL_CONNECT_ERROR",
36 => "CURLE_BAD_DOWNLOAD_RESUME or CURLE_FTP_BAD_DOWNLOAD_RESUME",
37 => "CURLE_FILE_COULDNT_READ_FILE",
38 => "CURLE_LDAP_CANNOT_BIND",
39 => "CURLE_LDAP_SEARCH_FAILED",
40 => "CURLE_LIBRARY_NOT_FOUND",
41 => "CURLE_FUNCTION_NOT_FOUND",
42 => "CURLE_ABORTED_BY_CALLBACK",
43 => "CURLE_BAD_FUNCTION_ARGUMENT",
44 => "CURLE_BAD_CALLING_ORDER",
45 => "CURLE_HTTP_PORT_FAILED",
46 => "CURLE_BAD_PASSWORD_ENTERED",
47 => "CURLE_TOO_MANY_REDIRECTS",
48 => "CURLE_UNKNOWN_TELNET_OPTION",
49 => "CURLE_TELNET_OPTION_SYNTAX",
50 => "CURLE_OBSOLETE",
51 => "CURLE_SSL_PEER_CERTIFICATE",
52 => "CURLE_GOT_NOTHING",
53 => "CURLE_SSL_ENGINE_NOTFOUND",
54 => "CURLE_SSL_ENGINE_SETFAILED",
55 => "CURLE_SEND_ERROR",
56 => "CURLE_RECV_ERROR",
57 => "CURLE_SHARE_IN_USE",
58 => "CURLE_SSL_CERTPROBLEM",
59 => "CURLE_SSL_CIPHER",
60 => "CURLE_SSL_CACERT",
61 => "CURLE_BAD_CONTENT_ENCODING",
62 => "CURLE_LDAP_INVALID_URL",
63 => "CURLE_FILESIZE_EXCEEDED",
64 => "CURLE_FTP_SSL_FAILED",
79 => "CURLE_SSH"
);
?>
up
17
s dot coletta at unidata dot it
16 years ago
Beware of CURLE_* constants!

On the official site:

http://curl.haxx.se/libcurl/c/libcurl-errors.html

some constants are different, some missing compared to the PHP implementation.

Some examples:

in PHP the curl error number 28 is called

CURLE_OPERATION_TIMEOUTED

while in the official site is:

CURLE_OPERATION_TIMEDOUT

So if you use the second, it won't march the error 28 because in PHP it is not defined that way.

The same is for these:

CURLE_HTTP_RETURNED_ERROR
CURLE_UPLOAD_FAILED
CURLE_INTERFACE_FAILED
CURLE_SSL_CERTPROBLEM
CURLE_SEND_FAIL_REWIND
CURLE_LOGIN_DENIED
CURLE_AGAIN

that are in someway named differently or missing from PHP.
up
8
uramihsayibok, gmail, com
10 years ago
Regarding CURLE_OPERATION_TIMEDOUT vs. CURLE_OPERATION_TIMEOUTED:

Originally cURL had the constant named TIMEOUTED (read: "timeout-ed"). This was changed[1] in 2007 and v7.17.0 to be TIMEDOUT (read: "timed out") and the old constant kept in place as an alias.

PHP started off using TIMEOUTED as well. The TIMEDOUT constant was added[2] in 2012 and v5.5.0 and the old constant was *kept in place*.

If you ask me, the TIMEDOUT constant reads more nicely (not to mention is technically the correct one to use) and as long as you're using PHP 5.5+ then it is available. If you have to support older versions then I suggest you keep using the new constant and add a polyfill like

<?php
if (version_compare(PHP_VERSION, "5.5.0", "<")) {
    define("CURLE_OPERATION_TIMEDOUT", CURLE_OPERATION_TIMEOUTED);
}
?>

or

<?php
// PHP <5.5.0
defined("CURLE_OPERATION_TIMEDOUT") || define("CURLE_OPERATION_TIMEDOUT", CURLE_OPERATION_TIMEOUTED);
?>

to be removed once you stop supporting them.

[1] https://github.com/bagder/curl/commit/9f44a95522162c0f4a61093efe1bf1f58b087358#diff-d8c6cb80505e0f7d5e27fca2a682aa34L119
[2] https://github.com/php/php-src/commit/9ab45d3edbafa3ee751472c3f8d1fb3f51f38cf1#diff-ac978e3de205f1d14eb960e0eb15ef24R723
up
8
Ron
18 years ago
<?
/*
* Author: Ron
* Released: August 4, 2007
* Description: An example of the disguise_curl() function in order to grab contents from a website while remaining fully camouflaged by using a fake user agent and fake headers.
*/

$url = 'http://www.ericgiguere.com/tools/http-header-viewer.html';

// disguises the curl using fake headers and a fake user agent.
function disguise_curl($url)
{
  $curl = curl_init();

  // Setup headers - I used the same headers from Firefox version 2.0.0.6
  // below was split up because php.net said the line was too long. :/
  $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
  $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  $header[] = "Cache-Control: max-age=0";
  $header[] = "Connection: keep-alive";
  $header[] = "Keep-Alive: 300";
  $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
  $header[] = "Accept-Language: en-us,en;q=0.5";
  $header[] = "Pragma: "; // browsers keep this blank.

  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
  curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
  curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
  curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
  curl_setopt($curl, CURLOPT_AUTOREFERER, true);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($curl, CURLOPT_TIMEOUT, 10);

  $html = curl_exec($curl); // execute the curl command
  curl_close($curl); // close the connection

  return $html; // and finally, return $html
}

// uses the function and displays the text off the website
$text = disguise_curl($url);
echo $text;
?>

~Ron
up
1
Anonymous
1 year ago
If CURLINFO_HEADER_OUT  is true and CURLOPT_VERBOSE is true, Verbose will not work! CURLINFO_HEADER_OUT  must be false for CURLOPT_VERBOSE to work!
To Top