curl_setopt
(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)
curl_setopt — cURL 転送用オプションを設定する
説明
指定した cURL セッションハンドルのオプションを設定します。
パラメータ
handle
curl_init() が返す cURL ハンドル。
option
-
設定したい
CURLOPT_XXX
オプション。 value
-
option
に設定する値。value
には、option
の以下の値に関して bool 値を指定する必要があります。オプション value
への設定値注記 CURLOPT_AUTOREFERER
true
を設定すると、Location:
によるリダイレクトを たどる際には自動的にReferer:
フィールドをリクエストに 追加します。CURLOPT_COOKIESESSION
true
を設定すると、クッキーの "セッション" を新しく開始します。 以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、 libcurl に指示します。デフォルトでは、それがセッションクッキーであるか どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。 セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ 有効であるクッキーのことです。CURLOPT_CERTINFO
true
を設定すると、セキュアな転送時に SSL 証明書の情報をSTDERR
に出力します。cURL 7.19.1 で追加されました。 これを使うには、 CURLOPT_VERBOSE
を on にしておかなければなりません。CURLOPT_CONNECT_ONLY
true
を設定すると、プロキシの認証や接続の確立などをすべて行いますが、データは転送しません。 このオプションは、HTTP や SMTP そして POP3 用に実装されています。cURL 7.15.2 で追加されました。 CURLOPT_CRLF
true
を設定すると、転送時に Unix 形式の改行を CRLF 形式に変換します。CURLOPT_DISALLOW_USERNAME_IN_URL
ユーザー名をURLに含めてはいけない場合に true
にします。 デフォルトは 0 で、ユーザー名は許可されています。cURL 7.61.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 CURLOPT_DNS_SHUFFLE_ADDRESSES
名前が解決され、ひとつ以上のIPアドレスが返された際、 ランダムな順番でそれらを利用するために、 返されたアドレスの順番をシャッフルする場合に true
にします。 これによって、IPv6 アドレスの前に IPv4 アドレスが使われるなどの事象が起こるかもしれません。cURL 7.60.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 CURLOPT_HAPROXYPROTOCOL
HAProxy Proxy プロトコル v1 ヘッダを接続の開始時に送信する場合に true
にします。 デフォルトではこのヘッダは送信されません。cURL 7.60.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 CURLOPT_SSH_COMPRESSION
ビルトインの SSH 圧縮を有効にする場合に true
にします。 これはリクエストであり、命令ではありません。 つまり、圧縮されるかどうかはサーバー次第です。cURL 7.56.0 で追加されました。 PHP 7.3.0 以降で利用可能です。 CURLOPT_DNS_USE_GLOBAL_CACHE
true
を設定すると、グローバル DNS キャッシュを利用します。 このオプションはスレッドセーフではありません。 また、PHP がスレッドセーフでない用途でビルドされている場合 (CLI, FCGI, Apache2-Prefork など) には、デフォルトで有効になっています。CURLOPT_FAILONERROR
true
を設定すると、HTTP で 400 以上のコードが返ってきた際に 処理失敗と判断します。デフォルトでは、コードの値を無視して ページの内容を取得します。CURLOPT_SSL_FALSESTART
true
にすると、TLS false start を有効にします。cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_FILETIME
true
を設定すると、ドキュメントの更新日時を取得しようと試みます。 この値を取得するには、curl_getinfo() でCURLINFO_FILETIME
オプションを用います。CURLOPT_FOLLOWLOCATION
true
を設定すると、サーバーが HTTP ヘッダの一部として送ってくる"Location: "
ヘッダの内容をたどります。CURLOPT_MAXREDIRS
も参照ください。CURLOPT_FORBID_REUSE
true
を設定すると、処理が終了した際に明示的に接続を切断します。 接続を再利用しません。CURLOPT_FRESH_CONNECT
true
を設定すると、キャッシュされている接続を利用せずに 新しい接続を確立します。CURLOPT_FTP_USE_EPRT
true
を設定すると、FTP のダウンロードに EPRT(および LPRT) を利用します。false
の場合は EPRT・LPRT を無効にして PORT を利用します。CURLOPT_FTP_USE_EPSV
true
を設定すると、FTP 転送の際にまず EPSV コマンドの利用を 試みます。失敗した場合は PASV を利用します。false
を設定すると、 EPSV を無効にします。CURLOPT_FTP_CREATE_MISSING_DIRS
true
を設定すると、FTP の操作中にパスが存在しなかったときに ディレクトリを作成します。CURLOPT_FTPAPPEND
true
を設定すると、リモートファイルを上書きせずに追記します。CURLOPT_TCP_NODELAY
true
にすると、TCP の Nagle アルゴリズムを解除します。解除すると、小さなパケットがネットワーク上を流れる回数をできるだけ減らそうと試みます。libcurl 7.11.2 以降と組み合わせてコンパイルしたときに利用可能です。 CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT
のエイリアスです。CURLOPT_FTPLISTONLY
true
を設定すると、FTP でディレクトリ名のみ表示します。CURLOPT_HEADER
true
を設定すると、ヘッダの内容も出力します。CURLINFO_HEADER_OUT
true
を設定すると、リクエスト文字列を追跡します。プレフィックスが CURLINFO_
となっているのは意図的なものです。CURLOPT_HTTP09_ALLOWED
HTTP/0.9 形式のレスポンスを許可するかどうか。libcurl 7.66.0 以降のデフォルトは false
です。 それより前のバージョンのデフォルトはtrue
でした。PHP 7.3.15 と 7.4.3 以降 および cURL >= 7.64.0 をビルドした場合に使用可能です。 CURLOPT_HTTPGET
true
を設定すると、HTTP のリクエスト形式を GET に戻します。 GET はデフォルト設定なので、リクエスト形式が変更されている 場合にのみ必要となります。CURLOPT_HTTPPROXYTUNNEL
true
にすると、指定された HTTP プロキシを介してトンネルします。CURLOPT_HTTP_CONTENT_DECODING
false
を設定すると、生の HTTP レスポンスボディを取得します。libcurl >= 7.16.2 とビルドした場合に利用可能です。 CURLOPT_KEEP_SENDING_ON_ERROR
返されたHTTPコードが300以上であっても、リクエストボディを送信し続ける場合は true
にします。 デフォルトのアクションはリクエストボディの送信を止め、 ストリームまたは接続を閉じます。 手動でNTLM認証を行う場合に、このオプションは適切です。 ほとんどのアプリケーションは、このオプションは不要です。PHP 7.3.0 以降で、libcurl >= 7.51.0 とビルドした場合に利用可能です。 CURLOPT_MUTE
true
を設定すると、cURL 関数に関連する出力を完全に抑えます。cURL 7.15.5 で削除されました (かわりに CURLOPT_RETURNTRANSFER が使えます) CURLOPT_NETRC
true
を設定すると、リモートサイトと接続を確立する際に用いる ユーザー名やパスワードを、~/.netrc から取得します。CURLOPT_NOBODY
true
を設定すると、出力から本文を削除します。 リクエストメソッドは HEAD となります。これをfalse
に変更してもリクエストメソッドは GET には変わりません。CURLOPT_NOPROGRESS
true
を設定すると、cURL 転送の進捗状況表示を無効にします。注意:
PHP は、このオプションを自動的に
true
に設定します。 これを変更するのは、デバッグ時のみにすべきです。CURLOPT_NOSIGNAL
true
を設定すると、cURL 関数が PHP プロセスに送信するシグナルを 無視します。マルチスレッド SAPI ではデフォルトで on となっており、 そのためタイムアウトオプションもまだ利用されています。cURL 7.10 で追加されました。 CURLOPT_PATH_AS_IS
true
にすると、ドットの連続を処理しません。cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_PIPEWAIT
true
にすると、パイプライン化/多重化を待ちます。cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_POST
true
を設定すると、HTTP POST を行います。POST は、application/x-www-form-urlencoded
形式で 行われます。これは一般的な HTML のフォームと同じ形式です。CURLOPT_PUT
true
を設定すると、HTTP PUT を行います。PUT するファイルはCURLOPT_INFILE
およびCURLOPT_INFILESIZE
で指定されている必要があります。CURLOPT_RETURNTRANSFER
true
を設定すると、curl_exec() の戻り値を 文字列で返します。通常はデータを直接出力します。CURLOPT_SASL_IR
true
にすると、最初のパケット内の最初のレスポンスの送信を有効にします。cURL 7.31.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_SSL_ENABLE_ALPN
false
にすると、SSL ハンドシェイクの際の ALPN を無効にします (SSL バックエンドの libcurl がそれに対応するビルドである場合)。 これは、http2 ネゴシエーションに使えます。cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_SSL_ENABLE_NPN
false
にすると、SSL ハンドシェイクの際の NPN を無効にします (SSL バックエンドの libcurl がそれに対応するビルドである場合)。 これは、http2 ネゴシエーションに使えます。cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_SSL_VERIFYPEER
false
を設定すると、cURL はサーバー証明書の検証を行いません。 別の証明書をCURLOPT_CAINFO
オプションで 指定するか、CURLOPT_CAPATH
オプションで 証明ディレクトリを指定します。cURL 7.10 以降、デフォルト値は true
です。また、 cURL 7.10 以降、デフォルトでインストールされています。CURLOPT_SSL_VERIFYSTATUS
true
にすると、証明書のステータスを検証します。cURL 7.41.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_PROXY_SSL_VERIFYPEER
false
を設定すると、cURL がピアの証明書の検証を行わなくなります。 別の証明書を検証するには、CURLOPT_CAINFO
オプションで指定するか、CURLOPT_CAPATH
を使って証明書のディレクトリを指定するやり方が使えます。false
を指定すると、ピアの証明書の検証はオプションに関係なく成功します。true
がデフォルトです。 PHP 7.3.0 以降で、libcurl >= 7.52.0 とビルドした場合に利用可能です。CURLOPT_SAFE_UPLOAD
この値は常に true
になります。CURLOPT_POSTFIELDS
を使ってファイルをアップロードする際に、 プレフィックス@
のサポートを無効にします。 これは、@
で始まる値を安全にフィールドに渡せるということです。 CURLFile も代わりに使えます。CURLOPT_SUPPRESS_CONNECT_HEADERS
true
を設定すると、CURLOPT_HTTPPROXYTUNNEL
を使って CONNECT リクエストが生成された場合に、 ユーザーのコールバック関数CURLOPT_HEADERFUNCTION
およびCURLOPT_WRITEFUNCTION
では proxy CONNECT のレスポンスヘッダを抑制します。cURL 7.54.0 で追加されました。PHP 7.3.0 以降で使用可能です。 CURLOPT_TCP_FASTOPEN
true
にすると、TCP Fast Open を有効にします。cURL 7.49.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_TFTP_NO_OPTIONS
true
にすると、TFTP オプションリクエストを送信しません。cURL 7.48.0 で追加されました。PHP 7.0.7 以降で使用可能です。 CURLOPT_TRANSFERTEXT
true
を設定すると、FTP 転送を ASCII モードで行います。 LDAP の場合は、データを HTML ではなくプレーンテキストで取得します。 Windows システムではSTDOUT
に対してバイナリモードを設定しないでください。CURLOPT_UNRESTRICTED_AUTH
true
を設定すると、(CURLOPT_FOLLOWLOCATION
を利用して)場所をたどっていく際にユーザー名とパスワードを送信し続けます。 これは、たとえホスト名が変わっても続けられます。