(PHP 4 >= 4.0.2, PHP 5, PHP 7)
curl_setopt — cURL 転送用オプションを設定する
ch
curl_init() が返す cURL ハンドル。
option
設定したい CURLOPT_XXX オプション。
value
option
に設定する値。
value
には、
option
の以下の値に関して
bool 値を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_AUTOREFERER |
TRUE を設定すると、Location: によるリダイレクトを
たどる際には自動的に Referer: フィールドをリクエストに
追加します。
|
|
CURLOPT_BINARYTRANSFER |
TRUE を設定すると、CURLOPT_RETURNTRANSFER
が使用された場合に出力結果を何も加工せずに返します。
|
PHP 5.1.3 以降では、このオプションは何の効果もありません。
CURLOPT_RETURNTRANSFER を使ったときには
常に出力をそのまま返すようになりました。
|
CURLOPT_COOKIESESSION |
TRUE を設定すると、クッキーの "セッション" を新しく開始します。
以前のセッションで読み込まれていた "セッションクッキー" は無視するよう、
libcurl に指示します。デフォルトでは、それがセッションクッキーであるか
どうかにかかわらず libcurl はすべてのクッキーを読み込んで保存します。
セッションクッキーとは、有効期限が指定されておらず "セッション" の間のみ
有効であるクッキーのことです。
|
|
CURLOPT_CERTINFO |
TRUE を設定すると、セキュアな転送時に SSL 証明書の情報を
STDERR に出力します。
|
cURL 7.19.1 で追加されました。
PHP 5.3.2 以降で使用可能です。これを使うには、CURLOPT_VERBOSE
を on にしておかなければなりません。
|
CURLOPT_CONNECT_ONLY |
TRUE を設定すると、プロキシの認証や接続の確立などをすべて行いますが、データは転送しません。
このオプションは、HTTP や SMTP そして POP3 用に実装されています。
|
7.15.2 で追加されました。 PHP 5.5.0 以降で使用可能です。 |
CURLOPT_CRLF |
TRUE を設定すると、転送時に Unix 形式の改行を CRLF 形式に変換します。
|
|
CURLOPT_DNS_USE_GLOBAL_CACHE |
TRUE を設定すると、グローバル DNS キャッシュを利用します。
このオプションはスレッドセーフではありません。また、デフォルトで
有効になっています。
|
|
CURLOPT_FAILONERROR |
TRUE を設定すると、HTTP で 400 以上のコードが返ってきた際に
処理失敗と判断します。デフォルトでは、コードの値を無視して
ページの内容を取得します。
|
|
CURLOPT_SSL_FALSESTART |
TRUE にすると、TLS false start を有効にします。
|
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_FILETIME |
TRUE を設定すると、ドキュメントの更新日時を取得しようと試みます。
この値を取得するには、curl_getinfo() で
CURLINFO_FILETIME オプションを用います。
|
|
CURLOPT_FOLLOWLOCATION |
TRUE を設定すると、サーバーが HTTP ヘッダの一部として送ってくる
"Location: " ヘッダの内容をたどります
(これは再帰的に行われます。CURLOPT_MAXREDIRS
が指定されていない限り、送ってくる "Location: "
ヘッダの内容をずっとたどり続けることに注意しましょう)。
|
|
CURLOPT_FORBID_REUSE |
TRUE を設定すると、処理が終了した際に明示的に接続を切断します。
接続を再利用しません。
|
|
CURLOPT_FRESH_CONNECT |
TRUE を設定すると、キャッシュされている接続を利用せずに
新しい接続を確立します。
|
|
CURLOPT_FTP_USE_EPRT |
TRUE を設定すると、FTP のダウンロードに EPRT(および LPRT)
を利用します。FALSE の場合は EPRT・LPRT を無効にして PORT
を利用します。
|
|
CURLOPT_FTP_USE_EPSV |
TRUE を設定すると、FTP 転送の際にまず EPSV コマンドの利用を
試みます。失敗した場合は PASV を利用します。FALSE を設定すると、
EPSV を無効にします。
|
|
CURLOPT_FTP_CREATE_MISSING_DIRS |
TRUE を設定すると、FTP の操作中にパスが存在しなかったときに
ディレクトリを作成します。
|
|
CURLOPT_FTPAPPEND |
TRUE を設定すると、リモートファイルを上書きせずに追記します。
|
|
CURLOPT_TCP_NODELAY |
TRUE にすると、TCP の Nagle アルゴリズムを解除します。解除すると、小さなパケットがネットワーク上を流れる回数をできるだけ減らそうと試みます。
|
PHP 5.2.1 以降のバージョンで、libcurl 7.11.2 以降と組み合わせてコンパイルしたときに利用可能です。 |
CURLOPT_FTPASCII |
CURLOPT_TRANSFERTEXT のエイリアスです。
|
|
CURLOPT_FTPLISTONLY |
TRUE を設定すると、FTP でディレクトリ名のみ表示します。
|
|
CURLOPT_HEADER |
TRUE を設定すると、ヘッダの内容も出力します。
|
|
CURLINFO_HEADER_OUT |
TRUE を設定すると、リクエスト文字列を追跡します。
|
PHP 5.1.3 以降で使用可能です。プレフィックスが CURLINFO_
となっているのは意図的なものです。
|
CURLOPT_HTTPGET |
TRUE を設定すると、HTTP のリクエスト形式を GET に戻します。
GET はデフォルト設定なので、リクエスト形式が変更されている
場合にのみ必要となります。
|
|
CURLOPT_HTTPPROXYTUNNEL |
TRUE にすると、指定された HTTP プロキシを介してトンネルします。
|
|
CURLOPT_MUTE |
TRUE を設定すると、cURL 関数に関連する出力を完全に抑えます。
|
cURL 7.15.5 で削除されました (かわりに CURLOPT_RETURNTRANSFER が使えます) |
CURLOPT_NETRC |
TRUE を設定すると、リモートサイトと接続を確立する際に用いる
ユーザー名やパスワードを、~/.netrc から取得します。
|
|
CURLOPT_NOBODY |
TRUE を設定すると、出力から本文を削除します。
リクエストメソッドは HEAD となります。これを FALSE
に変更してもリクエストメソッドは GET には変わりません。
|
|
CURLOPT_NOPROGRESS |
TRUE を設定すると、cURL 転送の進捗状況表示を無効にします。
|
|
CURLOPT_NOSIGNAL |
TRUE を設定すると、cURL 関数が PHP プロセスに送信するシグナルを
無視します。マルチスレッド SAPI ではデフォルトで on となっており、
そのためタイムアウトオプションもまだ利用されています。
|
cURL 7.10 で追加されました。 |
CURLOPT_PATH_AS_IS |
TRUE にすると、ドットの連続を処理しません。
|
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_PIPEWAIT |
TRUE にすると、パイプライン化/多重化を待ちます。
|
cURL 7.42.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_POST |
TRUE を設定すると、HTTP POST を行います。POST は、
application/x-www-form-urlencoded 形式で
行われます。これは一般的な HTML のフォームと同じ形式です。
|
|
CURLOPT_PUT |
TRUE を設定すると、HTTP PUT を行います。PUT するファイルは
CURLOPT_INFILE および
CURLOPT_INFILESIZE
で指定されている必要があります。
|
|
CURLOPT_RETURNTRANSFER |
TRUE を設定すると、curl_exec() の返り値を
文字列で返します。通常はデータを直接出力します。
|
|
CURLOPT_SAFE_UPLOAD |
TRUE にすると、CURLOPT_POSTFIELDS
でのファイルアップロードの際の @ プレフィックスを無効にします。
つまり、@ で始まる値を安全に渡せるようになるということです。
アップロードには CURLFile が使われるでしょう。
|
PHP 5.5.0 で追加され、デフォルトは FALSE でした。
PHP 5.6.0 以降は、デフォルトが TRUE に変わります。
|
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_TCP_FASTOPEN |
TRUE にすると、TCP Fast Open を有効にします。
|
cURL 7.49.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_TFTP_NO_OPTIONS |
TRUE にすると、TFTP オプションリクエストを送信しません。
|
cURL 7.48.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_TRANSFERTEXT |
TRUE を設定すると、FTP 転送を ASCII モードで行います。
LDAP の場合は、データを HTML ではなくプレーンテキストで取得します。
Windows システムでは STDOUT
に対してバイナリモードを設定しないでください。
|
|
CURLOPT_UNRESTRICTED_AUTH |
TRUE を設定すると、(CURLOPT_FOLLOWLOCATION
を利用して)場所をたどっていく際にユーザー名とパスワードを送信し続けます。
これは、たとえホスト名が変わっても続けられます。
|
|
CURLOPT_UPLOAD |
TRUE を設定すると、アップロードの準備をします。
|
|
CURLOPT_VERBOSE |
TRUE を設定すると、詳細な情報を出力します。情報は
STDERR か、または
CURLOPT_STDERR
で指定したファイルに出力されます。
|
value
には、
option
の以下の値に関して
整数値を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_BUFFERSIZE |
1 回の読み込みに用いるバッファのサイズ。しかしながら、必ず このバッファいっぱいまで読み込まれることを保証するものではありません。 | cURL 7.10 で追加されました。 |
CURLOPT_CLOSEPOLICY |
CURLCLOSEPOLICY_* のいずれかの値。
|
PHP 5.6.0 で削除されました。 |
CURLOPT_CONNECTTIMEOUT |
接続の試行を待ち続ける秒数。0 は永遠に待ち続けることを意味します。 | |
CURLOPT_CONNECTTIMEOUT_MS |
接続の試行を待ち続けるミリ秒数。0 は永遠に待ち続けることを意味します。 システムの標準の名前解決を使うように libcurl をビルドしている場合は、 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 | cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 |
CURLOPT_DNS_CACHE_TIMEOUT |
DNS エントリをメモリ内に保持し続ける秒数。デフォルトでは 120(2 分)に設定されています。 | |
CURLOPT_EXPECT_100_TIMEOUT_MS |
期待するタイムアウト。連続100リクエストの時間をミリ秒で指定します。 デフォルトは1000ミリ秒です。 | cURL 7.36.0 で追加されました。PHP 7.0.7 以降で使用可能です。 |
CURLOPT_FTPSSLAUTH |
(使用可能な場合の)FTP 認証方法。 CURLFTPAUTH_SSL(まず SSL を試す)、 CURLFTPAUTH_TLS(まず TLS を試す)あるいは CURLFTPAUTH_DEFAULT(cURL が決める)のいずれかです。 | cURL 7.12.2 で追加されました。 |
CURLOPT_HEADEROPT |
How to deal with headers. One of the following constants:
CURLHEADER_UNIFIED : the headers specified in
CURLOPT_HTTPHEADER will be used in requests
both to servers and proxies. With this option enabled,
CURLOPT_PROXYHEADER will not have any effect.
CURLHEADER_SEPARATE : makes
CURLOPT_HTTPHEADER headers only get sent to
a server and not to a proxy. Proxy headers must be set with
CURLOPT_PROXYHEADER to get used. Note that if
a non-CONNECT request is sent to a proxy, libcurl will send both
server headers and proxy headers. When doing CONNECT, libcurl will
send CURLOPT_PROXYHEADER headers only to the
proxy and then CURLOPT_HTTPHEADER headers
only to the server.
Defaults to CURLHEADER_SEPARATE as of cURL
7.42.1, and CURLHEADER_UNIFIED before.
|
Added in cURL 7.37.0. Available since PHP 7.0.7. |
CURLOPT_HTTP_VERSION |
CURL_HTTP_VERSION_NONE (デフォルト。
使用するバージョンを決めるのは cURL にまかせる)、
CURL_HTTP_VERSION_1_0 (HTTP/1.0 を使用する)、
あるいは CURL_HTTP_VERSION_1_1 (HTTP/1.1 を使用する)
のいずれかです。
|
|
CURLOPT_HTTPAUTH |
使用する HTTP 認証方法。以下の中から選びます。
2 つ以上の方法を組み合わせるには、ビット演算子 |(or) を使用します。このような場合、cURL はサーバーがサポートしている方法を 問い合わせたうえで最適な方法を選択します。
|
|
CURLOPT_INFILESIZE |
ファイルをリモートサイトにアップロードする際のファイルサイズ。
このオプションを指定しても、libcurl がそれ以上のデータを送信するのは止められないことに注意しましょう。
実際に何が送信されるのかは
CURLOPT_READFUNCTION に依存します。
|
|
CURLOPT_LOW_SPEED_LIMIT |
1 秒あたりのバイト数で、転送速度がこれより遅い期間が
CURLOPT_LOW_SPEED_TIME 秒以上続いた場合に
PHP は転送を終了します。
|
|
CURLOPT_LOW_SPEED_TIME |
転送速度が CURLOPT_LOW_SPEED_LIMIT
より遅い期間がどれだけ続いた場合に転送を異常終了させるかを、
秒単位で指定します。
|
|
CURLOPT_MAXCONNECTS |
許可される持続的接続の最大数。もしこの値に達した場合、
どの接続を閉じるのかを CURLOPT_CLOSEPOLICY
によって決定します。
|
|
CURLOPT_MAXREDIRS |
HTTP のリダイレクト先を追いかける最大値。
CURLOPT_FOLLOWLOCATION とあわせて使用します。
|
|
CURLOPT_PORT |
接続先のポート番号。 | |
CURLOPT_POSTREDIR |
CURLOPT_FOLLOWLOCATION が設定されているときに、
どの形式のリダイレクトの場合に HTTP POST メソッドを維持するのかを、
1 (301 Moved Permanently)、2 (302 Found)、4 (303 See Other) のビットマスクで指定します。
|
cURL 7.19.1 で追加されました。PHP 5.3.2 以降で使用可能です。 |
CURLOPT_PROTOCOLS |
使用できるプロトコルオプションは次のとおりです。
|
cURL 7.19.4 で追加されました。 |
CURLOPT_PROXYAUTH |
プロキシ接続に使用する HTTP 認証の方法。
CURLOPT_HTTPAUTH で説明したのと同じオプションを
指定可能です。プロキシ認証でサポートされているのは、今のところ
CURLAUTH_BASIC および
CURLAUTH_NTLM のみです。
|
cURL 7.10.7 で追加されました。 |
CURLOPT_PROXYPORT |
プロキシ接続のポート番号。このポート番号は、
CURLOPT_PROXY で指定することも可能です。
|
|
CURLOPT_PROXYTYPE |
CURLPROXY_HTTP (デフォルト)、
CURLPROXY_SOCKS4 、
CURLPROXY_SOCKS5 、
CURLPROXY_SOCKS4A あるいは
CURLPROXY_SOCKS5_HOSTNAME 。
|
cURL 7.10 で追加されました。 |
CURLOPT_REDIR_PROTOCOLS |
CURLPROTO_* の値のビットマスク。使用すると、
CURLOPT_FOLLOWLOCATION が有効な場合のリダイレクト時の転送に
libcurl がどのプロトコルを使用するのかに制約を加えます。これによって、
リダイレクト時に特定の転送プロトコルのみを使用するように制限することができます。
デフォルトでは、libcurl がサポートしているすべてのプロトコルのうち
FILE と SCP 以外のすべての使用を許可します。この挙動は 7.19.4
より前のバージョンとは異なります。7.19.4 より前のバージョンでは、
サポートするすべてのプロトコルを無条件に許可していました。
プロトコル定数の値は CURLOPT_PROTOCOLS を参照ください。
|
cURL 7.19.4 で追加されました。 |
CURLOPT_RESUME_FROM |
転送を途中から再開する場合のバイトオフセット。 | |
CURLOPT_SSL_OPTIONS |
Set SSL behavior options, which is a bitmask of any of the following constants:
CURLSSLOPT_ALLOW_BEAST : do not attempt to use
any workarounds for a security flaw in the SSL3 and TLS1.0 protocols.
CURLSSLOPT_NO_REVOKE : disable certificate
revocation checks for those SSL backends where such behavior is
present.
|
Added in cURL 7.25.0. Available since PHP 7.0.7. |
CURLOPT_SSL_VERIFYHOST |
1 は SSL ピア証明書に一般名が存在するかどうかを調べます。 2 はそれに加え、その名前がホスト名と一致することを検証します。 本番環境では、このオプションの値は常に 2 (デフォルト値) にしておかなければなりません。 | 値 1 は、cURL 7.28.1 以降では使えなくなりました。 |
CURLOPT_SSLVERSION |
CURL_SSLVERSION_DEFAULT (0)、
CURL_SSLVERSION_TLSv1 (1)、
CURL_SSLVERSION_SSLv2 (2)、
CURL_SSLVERSION_SSLv3 (3)、
CURL_SSLVERSION_TLSv1_0 (4)、
CURL_SSLVERSION_TLSv1_1 (5)、
CURL_SSLVERSION_TLSv1_2 (6) のいずれかの値。
|
|
CURLOPT_STREAM_WEIGHT |
Set the numerical stream weight (a number between 1 and 256). | Added in cURL 7.46.0. Available since PHP 7.0.7. |
CURLOPT_TIMECONDITION |
CURLOPT_TIMEVALUE の扱いを決定します。
CURLOPT_TIMEVALUE で指定した時刻以降に
変更されたページのみを返す場合は
CURL_TIMECOND_IFMODSINCE を使用します。
CURLOPT_HEADER が TRUE だと仮定すると、
ページが変更されていない場合は
"304 Not Modified" ヘッダが返されます。
CURL_TIMECOND_IFUNMODSINCE は反対の意味です。
デフォルトは CURL_TIMECOND_IFMODSINCE
です。
|
|
CURLOPT_TIMEOUT |
cURL 関数の実行にかけられる時間の最大値。 | |
CURLOPT_TIMEOUT_MS |
cURL 関数の実行にかけられる最大のミリ秒数。 システムの標準の名前解決を使うように libcurl をビルドしている場合は、 接続のタイムアウトは秒単位の精度となり、最小のタイムアウトは 1 秒となります。 | cURL 7.16.2 で追加されました。PHP 5.2.3 以降で使用可能です。 |
CURLOPT_TIMEVALUE |
1970 年 1 月 1 日からの経過秒数。この値は
CURLOPT_TIMECONDITION で使用されます。デフォルトでは
CURL_TIMECOND_IFMODSINCE が設定されます。
|
|
CURLOPT_MAX_RECV_SPEED_LARGE |
ダウンロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 デフォルトは無制限です。 | cURL 7.15.5 で追加されました。PHP 5.4.0 以降で使用可能です。 |
CURLOPT_MAX_SEND_SPEED_LARGE |
アップロード速度 (単位は「バイト/秒」) の転送中累加平均がこの値を超えると、 転送を一時停止して、平均速度がこのパラメータの値以下に落ちるまで待ちます。 デフォルトは無制限です。 | cURL 7.15.5 で追加されました。PHP 5.4.0 以降で使用可能です。 |
CURLOPT_SSH_AUTH_TYPES |
CURLSSH_AUTH_PUBLICKEY ,
CURLSSH_AUTH_PASSWORD ,
CURLSSH_AUTH_HOST ,
CURLSSH_AUTH_KEYBOARD
のビットマスク。
CURLSSH_AUTH_ANY にすると libcurl がいずれかひとつを選択します。
|
cURL 7.16.1 で追加されました。 |
CURLOPT_IPRESOLVE |
ホスト名の解決にどの形式の IP アドレスを使うのかを、アプリケーションが選べるようにします。
複数のバージョンの IP アドレスで解決できるホスト名のときに使うもので、指定できる値は
CURL_IPRESOLVE_WHATEVER 、
CURL_IPRESOLVE_V4 そして
CURL_IPRESOLVE_V6 です。
デフォルトは CURL_IPRESOLVE_WHATEVER です。
|
cURL 7.10.8 で追加されました。 |
CURLOPT_FTP_FILEMETHOD |
FTP(S) サーバー上のファイルに到達するために使う方法を curl に伝えます。利用可能な値は
CURLFTPMETHOD_MULTICWD 、
CURLFTPMETHOD_NOCWD および
CURLFTPMETHOD_SINGLECWD です。
|
cURL 7.15.1 で追加されました。PHP 5.3.0 以降で使用可能です。 |
value
は、
option
パラメータの
以下の値に関して文字列である必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_CAINFO |
接続先を検証するための証明書を保持するファイル名。
これは CURLOPT_SSL_VERIFYPEER を使用する場合に
のみ意味を持ちます。
|
絶対パスで指定しなければならないでしょう。 |
CURLOPT_CAPATH |
複数の証明書ファイルを保持するディレクトリ。このオプションは
CURLOPT_SSL_VERIFYPEER とともに使用します。
|
|
CURLOPT_COOKIE |
HTTP リクエストにおける "Cookie: " ヘッダの内容。 クッキーが複数ある場合は、セミコロンとスペースで区切られる (例 "fruit=apple; colour=red") ことに注意しましょう。 | |
CURLOPT_COOKIEFILE |
クッキーのデータを保持するファイルの名前。クッキーファイルは、 Netscape フォーマットあるいは HTTP ヘッダを単純にファイルにダンプしたものが使用可能です。 名前が空文字列の場合はクッキーを読み込みませんが、クッキーの処理は有効なままです。 | |
CURLOPT_COOKIEJAR |
ハンドルを閉じる際 (curl_close のコール後など) に、 すべての内部クッキーを保存するファイルの名前。 | |
CURLOPT_CUSTOMREQUEST |
HTTP リクエストで
"GET" あるいは "HEAD" 以外に
使用するカスタムメソッド。これが有用なのは、"DELETE"
やその他のあまり知られていない HTTP リクエストを実行する場合です。
使用可能な値は "GET"、
"POST"、"CONNECT" などです。
HTTP リクエストの内容をすべて指定するわけではありません。つまり、
"GET /index.html HTTP/1.0\r\n\r\n" のような
記述は間違いだということです。
|
|
CURLOPT_DEFAULT_PROTOCOL |
The default protocol to use if the URL is missing a scheme name. |
Added in cURL 7.45.0. Available since PHP 7.0.7. |
CURLOPT_DNS_INTERFACE |
Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address). |
Added in cURL 7.33.0. Available since PHP 7.0.7. |
CURLOPT_DNS_LOCAL_IP4 |
Set the local IPv4 address that the resolver should bind to. The argument should contain a single numerical IPv4 address as a string. |
Added in cURL 7.33.0. Available since PHP 7.0.7. |
CURLOPT_DNS_LOCAL_IP6 |
Set the local IPv6 address that the resolver should bind to. The argument should contain a single numerical IPv6 address as a string. |
Added in cURL 7.33.0. Available since PHP 7.0.7. |
CURLOPT_EGDSOCKET |
CURLOPT_RANDOM_FILE と似ていますが、
Entropy Gathering Daemon ソケットを使用してファイル名を生成する点が
違います。
|
|
CURLOPT_ENCODING |
"Accept-Encoding: " ヘッダの内容。 これにより、応答のデコードを可能にします。サポートされる エンコーディングは "identity"、 "deflate" および "gzip" です。もし空文字列 "" が指定された場合、 サポートされるエンコーディングをすべて含むヘッダが送信されます。 | cURL 7.10 で追加されました。 |
CURLOPT_FTPPORT |
FTP で "PORT" を使用するための IP アドレスを取得する際に使用される値。 "PORT" は、リモートサーバーに対してこちらが指定した IP アドレスに 接続するよう指示します。この値に設定できる内容は IP アドレス、ホスト名、 ネットワークインターフェイス名(Unix)、あるいは単に '-' を指定する ことでシステムのデフォルト IP アドレスを指定します。 | |
CURLOPT_INTERFACE |
使用するネットワークインターフェイスの名前。 インターフェイス名、IP アドレスあるいはホスト名が指定可能です。 | |
CURLOPT_KEYPASSWD |
CURLOPT_SSLKEY
あるいは CURLOPT_SSH_PRIVATE_KEYFILE 秘密鍵を使うときに必須となるパスワード。
|
cURL 7.16.1 で追加されました。 |
CURLOPT_KRB4LEVEL |
KRB4(Kerberos 4)セキュリティレベル。以下の値のいずれか
(セキュリティの低い順です)が指定可能です。
"clear"、
"safe"、
"confidential"、
"private"。
文字列がこれらのどれでもなかった場合は、
"private" が使用されます。このオプションを NULL
にすると KRB4 セキュリティを無効にします。現時点では、KRB4
セキュリティは FTP 転送にのみ使用可能です。
|
|
CURLOPT_LOGIN_OPTIONS |
Can be used to set protocol specific login options, such as the
preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*",
and should be used in conjunction with the
CURLOPT_USERNAME option.
|
Added in cURL 7.34.0. Available since PHP 7.0.7. |
CURLOPT_PINNEDPUBLICKEY |
Set the pinned public key. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";". | Added in cURL 7.39.0. Available since PHP 7.0.7. |
CURLOPT_POSTFIELDS |
HTTP "POST" で送信するすべてのデータ。
ファイルを送信するには、ファイル名の先頭に @
をつけてフルパスを指定します。ファイルタイプを明示的に指定するには、ファイル名の後に
';type=mimetype' 形式で続けます。
このパラメータは
'para1=val1¶2=val2&...'
のように url エンコードされた文字列形式で渡すこともできますし、
フィールド名をキー、データを値とする配列で渡すこともできます。
value が配列の場合、
Content-Type ヘッダには
multipart/form-data を設定します。
PHP 5.2.0 以降、このオプションに
@ プレフィックスつきでファイルを渡したときは
value が配列でなければならなくなりました。
PHP 5.5.0 以降、@ プレフィックスは非推奨になりました。
また、ファイルを CURLFile で送信できるようになりました。
@ プレフィックスを無効化して、
@ で始まる値を安全に渡せるようにするには、
CURLOPT_SAFE_UPLOAD オプションを TRUE と設定します。
|
|
CURLOPT_PRIVATE |
この cURL ハンドルに関連づけるデータ。ここで関連づけたデータは、
curl_getinfo() の
CURLINFO_PRIVATE オプションで取得できます。
cURL はデータを一切加工しません。
cURL マルチハンドルを使う場合は一般的に、この値が cURL ハンドルを特定する一意なキーとなります。
|
cURL 7.10.3 で追加されました。 |
CURLOPT_PROXY |
リクエストを経由させる HTTP プロキシ。 | |
CURLOPT_PROXY_SERVICE_NAME |
The proxy authentication service name. | Added in cURL 7.34.0. Available since PHP 7.0.7. |
CURLOPT_PROXYUSERPWD |
プロキシに接続するためのユーザー名とパスワード。 "[username]:[password]" 形式で指定します。 | |
CURLOPT_RANDOM_FILE |
使用するファイル名を、SSL の乱数生成器を使用して作成します。 | |
CURLOPT_RANGE |
取得するデータの範囲を "X-Y" 形式で指定します。X あるいは Y は省略可能です。 HTTP 転送では、いくつかの範囲をカンマで区切った "X-Y,N-M" のような形式もサポートしています。 | |
CURLOPT_REFERER |
HTTP リクエストで使用される "Referer: " ヘッダの内容。 | |
CURLOPT_SERVICE_NAME |
The authentication service name. | Added in cURL 7.43.0. Available since PHP 7.0.7. |
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 |
32 桁の十六進文字列。この文字列は、リモートホストの公開鍵の MD5 チェックサムでなければなりません。 md5sum がマッチしない限り、libcurl はホストとの接続を拒否します。 このオプションは、SCP および SFTP でのみ有効です。 | cURL 7.17.1 で追加されました。 |
CURLOPT_SSH_PUBLIC_KEYFILE |
公開鍵のファイル名。指定しなかった場合、libcurl はデフォルトの場所を探します。デフォルトは、 環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa.pub、設定されていなければ カレントディレクトリの "id_dsa.pub" です。 | cURL 7.16.1 で追加されました。 |
CURLOPT_SSH_PRIVATE_KEYFILE |
秘密鍵のファイル名。指定しなかった場合、libcurl はデフォルトの場所を探します。デフォルトは、
環境変数 HOME が設定されていれば $HOME/.ssh/id_dsa、設定されていなければ
カレントディレクトリの "id_dsa" です。
ファイルがパスワードで保護されている場合は、パスワードを
CURLOPT_KEYPASSWD に設定します。
|
cURL 7.16.1 で追加されました。 |
CURLOPT_SSL_CIPHER_LIST |
SSL で使用する暗号のリスト。例えば RC4-SHA および TLSv1 が 使用可能です。 | |
CURLOPT_SSLCERT |
PEM フォーマットの証明書を含むファイルの名前。 | |
CURLOPT_SSLCERTPASSWD |
CURLOPT_SSLCERT
証明書を使用する際に必要なパスワード。
|
|
CURLOPT_SSLCERTTYPE |
証明書の形式。サポートされるフォーマットは "PEM"(デフォルト)、"DER" および "ENG" です。 | cURL 7.9.3 で追加されました。 |
CURLOPT_SSLENGINE |
CURLOPT_SSLKEY で指定した SSL 秘密鍵の
暗号化エンジンの ID 。
|
|
CURLOPT_SSLENGINE_DEFAULT |
非対称暗号化で使用する暗号化エンジンの ID 。 | |
CURLOPT_SSLKEY |
SSL 秘密鍵を含むファイルの名前。 | |
CURLOPT_SSLKEYPASSWD |
CURLOPT_SSLKEY で指定した SSL 秘密鍵を
使用するために必要なパスワード。
|
|
CURLOPT_SSLKEYTYPE |
CURLOPT_SSLKEY で指定した SSL 秘密鍵の
形式。サポートされる型は以下のとおりです。
"PEM"(デフォルト)、"DER"
および "ENG" 。
|
|
CURLOPT_UNIX_SOCKET_PATH |
Enables the use of Unix domain sockets as connection endpoint and sets the path to the given string. | Added in cURL 7.40.0. Available since PHP 7.0.7. |
CURLOPT_URL |
取得する URL 。curl_init() でセッションを 初期化する際に指定することも可能です。 | |
CURLOPT_USERAGENT |
HTTP リクエストで使用される "User-Agent: " ヘッダの内容。 | |
CURLOPT_USERNAME |
The user name to use in authentication. | Added in cURL 7.19.1. Available since PHP 5.5.0. |
CURLOPT_USERPWD |
接続に使用するユーザー名とパスワード。 "[username]:[password]" 形式で指定します。 | |
CURLOPT_XOAUTH2_BEARER |
Specifies the OAuth 2.0 access token. | Added in cURL 7.33.0. Available since PHP 7.0.7. |
value
には、
option
の以下の値に関して
配列を指定する必要があります。
オプション | value への設定値 |
注記 |
---|---|---|
CURLOPT_CONNECT_TO |
Connect to a specific host and port instead of the URL's host and port. Accepts an array of strings with the format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Added in cURL 7.49.0. Available since PHP 7.0.7. |
CURLOPT_HTTP200ALIASES |
エラーではなく正常な応答として扱われる、HTTP 200 レスポンスの配列。 | cURL 7.10.3 で追加されました。 |
CURLOPT_HTTPHEADER |
設定する HTTP ヘッダフィールドの配列。
array('Content-type: text/plain', 'Content-length: 100')
形式。
|
|
CURLOPT_POSTQUOTE |
FTP リクエストの実行後に、サーバー上で実行する FTP コマンドの配列。 | |
CURLOPT_PROXYHEADER |
An array of custom HTTP headers to pass to proxies. | Added in cURL 7.37.0. Available since PHP 7.0.7. |
CURLOPT_QUOTE |
FTP リクエストの前にサーバー上で実行する FTP コマンドの配列。 |
value
はストリームリソース(例えば
fopen() が作成するもの)であり、以下の
option
パラメータに設定します。
オプション | value に設定する内容 |
---|---|
CURLOPT_FILE |
転送内容が書き込まれるファイル。デフォルトは STDOUT (ブラウザウィンドウ)。 |
CURLOPT_INFILE |
アップロード時に転送内容を読み込むファイル。 |
CURLOPT_STDERR |
STDERR の代わりにエラーを出力する場所。 |
CURLOPT_WRITEHEADER |
転送のヘッダ部分が書き込まれるファイル。 |
value
には、
option
の以下の値に関して
有効な関数あるいはクロージャの名前を指定する必要があります。
オプション | value への設定値 |
---|---|
CURLOPT_HEADERFUNCTION |
二つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目は書き込む ヘッダデータの文字列です。このコールバック関数を使用するにあたり、 ヘッダデータを書き込む処理を実装するのはあなたの役目となります。 書き込んだデータのバイト数を返します。 |
CURLOPT_PASSWDFUNCTION |
三つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目はパスワード プロンプトの文字列、そして 3 番目はパスワードの最大長です。 入力されたパスワードを文字列で返します。 |
CURLOPT_PROGRESSFUNCTION |
五つのパラメータをとるコールバック。 最初のパラメータは cURL 利ソールで、2 番目はこの転送でダウンロードしようとしている総バイト数、 3 番目はこれまでにダウンロードしたバイト数、4 番目はこの転送でアップロードしようとしている総バイト数、 そして 5 番目はこれまでにアップロードしたバイト数です。
ゼロ以外の値を返すと、転送を強制終了できます。このとき、この転送にはエラー
|
CURLOPT_READFUNCTION |
三つのパラメータをとるコールバック。
最初のパラメータは CURL リソースで、2 番目は
CURLOPT_INFILE で cURL に渡したストリームリソース、
そして最後が読み込むデータの最大量です。
コールバックは、要求したデータ量以下の長さの文字列を返さなければなりません。
一般的には、渡されたストリームリソースから読み込んだデータを返します。
EOF を伝えるには空文字列を返さなければなりません。
|
CURLOPT_WRITEFUNCTION |
二つのパラメータをとるコールバック。 最初のパラメータは CURL リソースで、2 番目は書き込む データの文字列です。データの保存には、 このコールバック関数を使わなければなりません。 書き込んだデータの正確なバイト数を返す必要があります。 返さなければ、エラーで転送が異常終了します。 |
その他の値
オプション | value への設定値 |
---|---|
CURLOPT_SHARE |
curl_share_init() の結果。 この cURL ハンドルに、共有ハンドルからのデータを使わせるようにします。 |
成功した場合に TRUE
を、失敗した場合に FALSE
を返します。
バージョン | 説明 |
---|---|
7.0.7 |
CURL_HTTP_VERSION_2 , CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE ,
CURL_HTTP_VERSION_2TLS , CURL_REDIR_POST_301 ,
CURL_REDIR_POST_302 , CURL_REDIR_POST_303 ,
CURL_REDIR_POST_ALL , CURL_VERSION_KERBEROS5 ,
CURL_VERSION_PSL , CURL_VERSION_UNIX_SOCKETS ,
CURLAUTH_NEGOTIATE , CURLAUTH_NTLM_WB ,
CURLFTP_CREATE_DIR , CURLFTP_CREATE_DIR_NONE ,
CURLFTP_CREATE_DIR_RETRY , CURLHEADER_SEPARATE ,
CURLHEADER_UNIFIED , CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE ,
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE , CURLMOPT_MAX_HOST_CONNECTIONS ,
CURLMOPT_MAX_PIPELINE_LENGTH , CURLMOPT_MAX_TOTAL_CONNECTIONS ,
CURLOPT_CONNECT_TO , CURLOPT_DEFAULT_PROTOCOL ,
CURLOPT_DNS_INTERFACE , CURLOPT_DNS_LOCAL_IP4 ,
CURLOPT_DNS_LOCAL_IP6 , CURLOPT_EXPECT_100_TIMEOUT_MS ,
CURLOPT_HEADEROPT , CURLOPT_LOGIN_OPTIONS ,
CURLOPT_PATH_AS_IS , CURLOPT_PINNEDPUBLICKEY ,
CURLOPT_PIPEWAIT , CURLOPT_PROXY_SERVICE_NAME ,
CURLOPT_PROXYHEADER , CURLOPT_SASL_IR ,
CURLOPT_SERVICE_NAME , CURLOPT_SSL_ENABLE_ALPN ,
CURLOPT_SSL_ENABLE_NPN , CURLOPT_SSL_FALSESTART ,
CURLOPT_SSL_VERIFYSTATUS , CURLOPT_STREAM_WEIGHT ,
CURLOPT_TCP_FASTOPEN , CURLOPT_TFTP_NO_OPTIONS ,
CURLOPT_UNIX_SOCKET_PATH , CURLOPT_XOAUTH2_BEARER ,
CURLPROTO_SMB , CURLPROTO_SMBS ,
CURLPROXY_HTTP_1_0 , CURLSSH_AUTH_AGENT ,
CURLSSLOPT_NO_REVOKE
が追加されました。
|
5.6.0 |
CURLOPT_SAFE_UPLOAD のデフォルトが TRUE になりました。
|
5.6.0 |
CURLOPT_CLOSEPOLICY およびそれに関連する値が削除されました。
|
5.5.0 |
cURL リソースを、
CURLOPT_PROGRESSFUNCTION コールバックの最初の引数として渡すようになりました。
|
5.5.0 |
CURLOPT_SHARE が追加されました。
|
5.3.0 |
CURLOPT_PROGRESSFUNCTION が追加されました。
|
5.2.10 |
CURLOPT_PROTOCOLS および
CURLOPT_REDIR_PROTOCOLS
が追加されました。
|
5.2.4 |
CURLOPT_PRIVATE が追加されました。
|
5.1.0 |
CURLOPT_AUTOREFERER ,
CURLOPT_BINARYTRANSFER ,
CURLOPT_FTPSSLAUTH ,
CURLOPT_PROXYAUTH および
CURLOPT_TIMECONDITION
が追加されました。
|
5.0.0 |
CURLOPT_FTP_USE_EPRT ,
CURLOPT_NOSIGNAL ,
CURLOPT_UNRESTRICTED_AUTH ,
CURLOPT_BUFFERSIZE ,
CURLOPT_HTTPAUTH ,
CURLOPT_PROXYPORT ,
CURLOPT_PROXYTYPE ,
CURLOPT_SSLCERTTYPE および
CURLOPT_HTTP200ALIASES
が追加されました。
|
例1 新規に cURL セッションを初期化、ウェブページを取得する
<?php
// 新しい cURL リソースを作成します
$ch = curl_init();
// URL その他のオプションを適切に設定します
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// URL の内容を取得し、ブラウザに渡します
curl_exec($ch);
// cURL リソースを閉じ、システムリソースを開放します
curl_close($ch);
?>
例2 ファイルのアップロード (PHP 5.5.0 以降では非推奨)
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // PHP 5.6.0 以降ではこれが必要です
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
上の例の出力は以下となります。
Array ( [name] => Foo ) Array ( [file] => Array ( [name] => test.png [type] => image/png [tmp_name] => /tmp/phpcpjNeQ [error] => 0 [size] => 279 ) )
注意:
配列を
CURLOPT_POSTFIELDS
に渡すと、データを multipart/form-data でエンコードします。 一方 URL エンコードされた文字列を渡すと、データを application/x-www-form-urlencoded でエンコードします。