PHPのcurl_setopt関数は、cURL転送オプションを設定する、つまり、特定のcURLセッションハンドルのオプションを設定するために使用されます。 curl_setopt 関数は、成功すると TRUE を返し、失敗すると FALSE を返します。
PHPのcurl_setopt関数
curl_setopt — cURL転送オプションを設定します。
説明
bool curl_setopt ( resource $ch , int $option , mixed $value )
指定された cURL セッション ハンドルのオプションを設定します。
パラメータ
ch:curl_init()によって返されるcURLハンドル。
オプション: 設定する必要があるCURLOPT_XXXオプション。
value: オプションoptionに設定される値。
次のオプションのオプションのパラメータの場合、値は bool 型の値に設定する必要があります:
オプション | オプション値値 | 備考 |
---|---|---|
CURLOPT_AUTOREFERER | Location:に基づいてリダイレクトするときにヘッダーに自動的に設定されます参照者:情報。 | |
CURLOPT_BINARYTRANSFER | CURLOPT_RETURNTRANSFERが有効な場合、生の(Raw)出力を返します。 | |
CURLOPT_COOKIESESSION | 有効にすると、curl は 1 つのセッション Cookie のみを渡し、他の Cookie を無視します。デフォルトでは、cURL はすべての Cookie をサーバーに返します。セッション Cookie は、サーバー側のセッションが有効かどうかを判断するために使用される Cookie を指します。 | |
CURLOPT_CRLF | 有効にすると、Unix の改行が復帰と改行に変換されます。 | |
CURLOPT_DNS_USE_GLOBAL_CACHE | この項目はスレッドセーフであり、デフォルトで有効になります。 | |
CURLOPT_FAILONERROR | デフォルトの動作では、数値が 400 以下の HTTP メッセージを無視します。 | |
CURLOPT_FILETIME | 有効にすると、リモートドキュメント内の情報の変更が試行されます。結果情報は、curl_getinfo() 関数の CURLINFO_FILETIME オプションを通じて返されます。 curl_getinfo(). | |
CURLOPT_FOLLOWLOCATION | 有効にすると、サーバーから返された "Location: "" がヘッダーに配置され、再帰的にサーバーに返されます。制限するには CURLOPT_MAXREDIRS を使用します再帰的な戻りの数。 | |
CURLOPT_FORBID_REUSE | インタラクション完了後に強制的に切断され、再利用することはできません。 | |
CURLOPT_FRESH_CONNECT | 新しい接続を強制的に取得し、キャッシュ内の接続を置き換えます。 | |
CURLOPT_FTP_USE_EPRT | 有効にすると、FTP ダウンロード時に EPRT (または LPRT) コマンドを使用します。 FALSE に設定されている場合は EPRT と LPRT を無効にし、PORT コマンドを使用します のみ。 | |
CURLOPT_FTP_USE_EPSV | 有効にすると、F 中に PASV モードに戻る前に EPSV コマンドが最初に試行されます。 TP転送。 FALSE に設定すると、EPSV コマンドが無効になります。 | |
CURLOPT_FTPAPPEND | 有効にすると、追加はファイルを上書きするのではなく、ファイルに書き込みます。 | |
CURLOPT_FTPASCII | CURLOPT_TRANSFERTEXTのエイリアス。 | |
CURLOPT_FTPLISTONLY | 有効にすると、FTP ディレクトリの名前のみがリストされます。 | |
CURLOPT_HEADER | 有効にすると、ヘッダファイル情報がデータストリームとして出力されます。 | |
CURLINFO_HEADER_OUT | 有効な場合の追跡ハンドルのリクエスト文字列。 | PHP 5.1.3 以降で利用可能です。 CURLINFO_接頭辞は意図的なものです。 |
CURLOPT_HTTPGET | 有効にすると、HTTP メソッドは GET に設定されます。GET がデフォルトであるため、変更された場合にのみ使用されます。 | |
CURLOPT_HTTPPROXYTUNNEL | 有効にすると、HTTP プロキシ経由で送信されます。 | |
CURLOPT_MUTE | 有効にすると、cURL 関数で変更されたすべてのパラメーターがデフォルト値に復元されます。 | |
CURLOPT_NETRC | 接続が確立されたら、~/.netrc ファイルにアクセスして、リモート サイトに接続するためのユーザー名とパスワードの情報を取得します。 | |
CURLOPT_NOBODY | 有効にすると、HTMLのBODY部分が出力されなくなります。 | |
CURLOPT_NOPROGRESS |
有効時にcurl転送の進行状況バーを閉じる この項目のデフォルト設定は有効です。
|
|
CURLOPT_NOSIGNAL | 有効にすると、curl によって php に渡されるすべてのシグナルを無視します。この項目は、SAPI マルチスレッド送信中にデフォルトで有効になります。 | cURL は 7.10 で追加されました。 |
CURLOPT_POST | これを有効にすると、フォーム送信と同様に、タイプ: application/x-www-form-urlencoded の通常の POST リクエストが送信されます。 | |
CURLOPT_PUT | を有効にすると、HTTP によるファイルの送信が許可されます。CURLOPT_INFILE と CURLOPT_INFILESIZE の両方を設定する必要があります。 | |
CURLOPT_RETURNTRANSFER | curl_exec()で取得した情報を直接出力するのではなく、ファイルストリームの形式で返します。 | |
CURLOPT_SSL_VERIFYPEER | cURLを無効にすると、サーバー側からの検証が終了します。 CURLOPT_CAINFO オプションを使用して証明書を設定します。 CURLOPT_CAPATH オプションを使用して証明書ディレクトリを設定します。 CURLOPT_SSL_VERIFYPEER (デフォルト値は 2) が有効な場合、CURLOPT_SSL_VERIFYHOST を TRUE に設定する必要があり、それ以外の場合は FALSE に設定します。 | cURL 7.10 以降のデフォルトは TRUE です。 cURL 7.10 以降、バンドルのインストールがデフォルトで行われます。 |
CURLOPT_TRANSFERTEXT | FTP 転送に ASCII モードを使用できるようにします。 LDAP の場合、HTML ではなくプレーン テキスト情報を取得します。 Windows システムでは、システムは STDOUT をバイナリ モードに設定しません。 | |
CURLOPT_UNRESTRICTED_AUTH | ドメイン名が変更された場合でも、CURLOPT_FOLLOWLOCATIONを使用して生成されたヘッダー内の複数の場所にユーザー名とパスワード情報を追加し続けます。 | |
CURLOPT_UPLOAD | を有効にすると、ファイルのアップロードが許可されます。 | |
CURLOPT_VERBOSE | 有効にすると、すべての情報が報告され、STDERR または指定された CURLOPT_STDERR に保存されます。 |
以下のオプションのオプションのパラメータの場合、値は整数型の値に設定する必要があります:
オプション | オプション値値 | 備考 |
---|---|---|
CURLOPT_BUFFERSIZE | 毎回取得されるデータで読み取られるキャッシュのサイズですが、この値が満たされる保証はありません毎回 。 | cURL 7.10 で追加されました。 |
CURLOPT_CLOSEPOLICY | 他に 3 つの CURLCLOSEPOLICY_LEAST_RECENTLY_USED または CURLCLOSEPOLICY_OLDEST のいずれかですが、cURL はまだそれらをサポートしていません。 | |
CURLOPT_CONNECTTIMEOUT | 0 に設定すると、無期限に待機します。 | |
CURLOPT_CONNECTTIMEOUT_MS | 接続試行を待機する時間 (ミリ秒単位)。 0 に設定すると、無限に待機します。 | cURL 7.16.2 で追加されました。 PHP 5.2.3 以降で利用可能です。 |
CURLOPT_DNS_CACHE_TIMEOUT | DNS 情報をメモリに保存する時間を設定します。デフォルトは 120 秒です。 | |
CURLOPT_FTPSSLAUTH | FTP 検証方法: CURLFTPAUTH_SSL (最初に SSL を試す)、CURLFTPAUTH_TLS (最初に TLS を試す) または CURLFTPAUTH_DEFA ULT (cURL が自動的に決定するようにします)。 | cURL 7.12.2 で追加されました。 |
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_INFILESIZE | アップロードされるファイルのサイズ制限をバイト単位で設定します。 | |
CURLOPT_LOW_SPEED_LIMIT | 転送速度がCURLOPT_LOW_SPEED_LIMIT(バイト/秒)未満の場合、PHPはCURLOPT_LOW_SPEED_TIMEに基づいて遅すぎるかどうかを判断します送信をキャンセルします。 | |
CURLOPT_LOW_SPEED_TIME | 転送速度がCURLOPT_LOW_SPEED_LIMIT(バイト/秒)未満の場合、PHPはCURLOPT_LOW_SPEED_TIMEに基づいて遅すぎるかどうかを判断し、送信。 | |
CURLOPT_MAXCONNECTS | 許可される接続の最大数を超えた場合、CURLOPT_CLOSEPOLICYを使用して、どの接続を停止する必要があるかを決定します。 | |
CURLOPT_MAXREDIRS | このオプションは CURLOPT_FOLLOWLOCATION と一緒に使用されます。 | |
CURLOPT_PORT | は、接続ポートを指定するために使用されます。 (オプション) | |
CURLOPT_PROTOCOLS | CURLPROTO_* ビットフィールド参照。有効にすると、ビットフィールド値によって、libcurl が転送中に使用できるプロトコルが制限されます。これにより、幅広いプロトコルをサポートするように libcurl をコンパイルできるようになりますが、使用が許可されているプロトコルのサブセットのみの使用に制限されます。デフォルトでは、libcurl はサポートするすべてのプロトコルを使用します。 CURLOPT_REDIR_PROTOCOLS を参照してください。使用可能なプロトコル オプションは次のとおりです: CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURL PROTO_TFTP 、CURLPROTO_ALL | はcURL 7.19.4で追加されました。ビットフィールドは |
CURLOPT_PROTOCOLS | CURLPROTO_* を参照します。有効にすると、ビットフィールド値によって、libcurl が転送中に使用できるプロトコルが制限されます。これにより、幅広いプロトコルをサポートするように libcurl をコンパイルできるようになりますが、使用が許可されているプロトコルのサブセットのみの使用に制限されます。デフォルトでは、libcurl はサポートするすべてのプロトコルを使用します。 CURLOPT_REDIR_PROTOCOLS を参照してください。使用可能なプロトコル オプションは次のとおりです: CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURL PROTO_TFTP 、CURLPROTO_ALL | はcURL 7.19.4で追加されました。 |
CURLOPT_PROXYAUTH | HTTPプロキシ接続の検証方法。 CURLOPT_HTTPAUTH のビットフィールド フラグを使用して、対応するオプションを設定します。プロキシ認証については、現在 CURLAUTH_BASIC と CURLAUTH_NTLM のみがサポートされています。 | cURL 7.10.7 で追加されました。 |
CURLOPT_PROXYPORT | プロキシサーバーのポート。ポートはCURLOPT_PROXYでも設定できます。 | |
CURLOPT_PROXYTYPE | は、CURLPROXY_HTTP (デフォルト) または CURLPROXY_SOCKS5 ではありません。 | cURL 7.10 で追加されました。 |
CURLOPT_REDIR_PROTOCOLS | CURLPROTO_*のビットフィールド値。有効にすると、CURLOPT_FOLLOWLOCATION がオンになっているときに、リダイレクトをフォローするときにトランスポート スレッドが使用できるプロトコルがビットフィールド値によって制限されます。これにより、リダイレクト時にトランスポート スレッドを許可されたプロトコルのサブセットに制限できるようになります。デフォルトでは、libcurl は FILE と SCP を除くすべてのプロトコルを許可します。これは、サポートされているすべてのプロトコルに無条件で従う 7.19.4 プレリリース バージョンとは少し異なります。プロトコル定数については、CURLOPT_PROTOCOLSを参照してください。 | cURL 7.19.4 で追加されました。 |
CURLOPT_RESUME_FROM | 送信再開時にバイトオフセットを渡します(送信再開に使用します)。 | |
CURLOPT_SSL_VERIFYHOST | 1 サーバーSSL証明書に共通名が存在するかどうかを確認します。翻訳者注: 一般名とは、通常、SSL 証明書を申請するドメイン名 (ドメイン) またはサブドメイン (サブドメイン) を入力することを意味します。 2 共通名が存在し、指定されたホスト名と一致することを確認します。 | |
CURLOPT_SSLVERSION | 使用する SSL バージョン (2 または 3)。デフォルトでは、PHP はこの値を自動的に検出しますが、場合によっては手動で設定する必要がある場合があります。 | |
CURLOPT_TIMECONDITION | CURLOPT_TIMEVALUEで指定された一定の時間が経過した後にページが編集されている場合はCURL_TIMECOND_IFMODSINCEを使用し、変更されていない場合は CUR LOPT_HEADER は true "304 Not Modified" ヘッダーを返します。CURLOPT_HEADER が false の場合は、CURL_TIMECOND_IFUNMODSINCE を使用します。デフォルト値は CURL_TIMECOND_IFUNMODSINCE です。 | |
CURLOPT_TIMEOUT | cURL の実行を許可する最大秒数を設定します。 | |
CURLOPT_TIMEOUT_MS | cURL の実行が許可される最大ミリ秒数を設定します。 | cURL 7.16.2 で追加されました。 PHP 5.2.3 以降で利用可能です。 |
CURLOPT_TIMEVALUE | CURLOPT_TIMECONDITIONで使用されるタイムスタンプを設定します。デフォルトでは、CURL_TIMECOND_IFMODSINCEが使用されます。 |
次のオプションのオプションのパラメータの場合、値は文字列型の値に設定する必要があります:
option | optionalvaluevalue | 備考 |
---|---|---|
CURLOPT_CAINFO | ファイルが 1 つサーバーによる検証に使用される 1 つ以上の証明書を保持する名前。このパラメーターは、CURLOPT_SSL_VERIFYPEER と一緒に使用した場合にのみ意味を持ちます。 . | |
CURLOPT_CAPATH | 複数のCA証明書を保持するディレクトリ。このオプションは CURLOPT_SSL_VERIFYPEER と一緒に使用されます。 | |
CURLOPT_COOKIE | HTTPリクエストの"Cookie:"部分の内容を設定します。複数の Cookie はセミコロンとその後のスペースで区切られます (例: "fruit=apple; colour=red")。 | |
CURLOPT_COOKIEFILE | Cookie データを含むファイル名は、Netscape 形式にすることも、純粋な HTTP ヘッダー情報だけをファイルに保存することもできます。 | |
CURLOPT_COOKIEJAR | 接続終了後にCookie情報を保存するファイル。 | |
CURLOPT_CUSTOMREQUEST |
HTTPリクエストとして"GET"や"HEAD"の代わりにカスタムリクエストメッセージを使用します。これは、「DELETE」 またはその他の秘密の HTTP リクエストを実行する場合に役立ちます。有効な値には、"GET"、"POST"、"CONNECT"などが含まれます。つまり、HTTP リクエスト全体をここに入力しないでください。たとえば、「GET /index.html HTTP/1.0rnrn」 と入力するのは誤りです。
|
|
CURLOPT_EGDSOCKET | は、エントロピー収集デーモンソケットを除いてCURLOPT_RANDOM_FILEに似ています。 | |
CURLOPT_ENCODING | HTTP リクエスト ヘッダーの "Accept-Encoding: " の値。サポートされているエンコーディングは、"identity"、"deflate"、および "gzip" です。空の文字列 "" の場合、リクエスト ヘッダーはサポートされているすべてのエンコード タイプを送信します。 | cURL 7.10 で追加されました。 |
CURLOPT_FTPPORT | この値は、FTP の「POST」コマンドに必要な IP アドレスを取得するために使用されます。 「POST」コマンドは、指定した IP アドレスに接続するようにリモート サーバーに指示します。この文字列には、プレーン テキストの IP アドレス、ホスト名、ネットワーク インターフェイス名 (UNIX の場合)、またはデフォルトの IP アドレスを使用するための単なる「-」を指定できます。 | |
CURLOPT_INTERFACE | ネットワーク送信インターフェース名。インターフェース名、IP アドレス、またはホスト名を指定できます。 | |
CURLOPT_KRB4LEVEL | KRB4 (Kerberos 4) セキュリティ レベル。次の値のいずれかが有効です (最小値から最大値の順): "clear"、"safe"、"confidential"、"private".。文字列がこれらのどれにも一致しない場合は、"private" が使用されます。このオプションを NULL に設定すると、KRB4 セキュリティ認証が無効になります。現在、KRB4 セキュリティ認証は FTP 送信にのみ使用できます。 | |
CURLOPT_POSTFIELDS | すべてのデータは、HTTP プロトコルの「POST」操作を使用して送信されます。ファイルを送信するには、ファイル名の前に @ を付け、フルパスを使用します。このパラメーターは、「para1=val1¶2=val2&...」のような URL コード化された文字列、またはフィールド名をキーとして、フィールド データを値として持つ配列を通じて渡すことができます。 value が配列の場合、Content-Type ヘッダーは multipart/form-data に設定されます。 | |
CURLOPT_PROXY | HTTP プロキシ チャネル。 | |
CURLOPT_PROXYUSERPWD | プロキシへの接続に使用される"[username]:[password]"形式の文字列。 | |
CURLOPT_RANDOM_FILE | SSL乱数シードを生成するために使用されるファイル名。 | |
CURLOPT_RANGE | "X-Y" の形式で、X と Y はデータ範囲をバイト単位で取得するためのオプションです。 HTTP 転送スレッドは、"X-Y,N-M" など、カンマで区切られた複数の重複もサポートします。 | |
CURLOPT_REFERER | HTTPリクエストヘッダーの「Referer:」コンテンツ。 | |
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秘密鍵に使用される暗号化エンジン変数。 | |
CURLOPT_SSLENGINE_DEFAULT | 非対称暗号化操作に使用される変数。 | |
CURLOPT_SSLKEY | SSL秘密キーを含むファイルの名前。 | |
CURLOPT_SSLKEYPASSWD |
CURLOPT_SSLKEYで指定されたSSL秘密鍵のパスワード。
|
|
CURLOPT_SSLKEYTYPE | CURLOPT_SSLKEYで指定された秘密鍵の暗号化タイプは、"PEM"(デフォルト値)、"DER"です。 」英語」。 | |
CURLOPT_URL | 取得が必要なURLアドレスはcurl_init()関数でも設定できます。 | |
CURLOPT_USERAGENT | には、HTTP リクエストに "User-Agent: " ヘッダー文字列が含まれています。 | |
CURLOPT_USERPWD | 接続に必要なユーザー名とパスワードを、"[username]:[password]"の形式で渡します。 |
以下のオプションのオプションのパラメータの値は、配列に設定する必要があります:
200 応答コード配列。配列内の応答は正しい応答とみなされ、それ以外の場合はエラーとみなされます。 | cURL 7.10.3 で追加されました。 | CURLOPT_HTTPHEADER | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CURLOPT_POSTQUOTE | ||||||||||||||||||||||||
CURLOPT_QUOTE |
||||||||||||||||||||||||
对于下面的这些option的可选参数,value应该被设置一个流资源 (例如使用fopen()):
对于下面的这些option的可选参数,value应该被设置为一个回调函数名:
返回值 成功时返回 TRUE, 或者在失败时返回 FALSE。 实例 初始化一个新的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); ?> 上传文件实例: <?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_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 ) ) 更多相关知识,请访问 PHP中文网!! |
以上がPHPのcurl_setopt関数の用途は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。