ホームページ  >  記事  >  バックエンド開発  >  PHPのcurl_setopt関数の用途は何ですか?

PHPのcurl_setopt関数の用途は何ですか?

巴扎黑
巴扎黑オリジナル
2017-08-21 14:06:124256ブラウズ

PHPのcurl_setopt関数は、cURL転送オプションを設定する、つまり、特定のcURLセッションハンドルのオプションを設定するために使用されます。 curl_setopt 関数は、成功すると TRUE を返し、失敗すると FALSE を返します。

PHPのcurl_setopt関数の用途は何ですか?

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転送の進行状況バーを閉じる この項目のデフォルト設定は有効です。

:

PHP はこのオプションを自動的に TRUE に設定します。このオプションはデバッグ目的でのみ変更する必要があります。


CURLOPT_NOSIGNAL 有効にすると、curl によって php に渡されるすべてのシグナルを無視します。この項目は、SAPI マルチスレッド送信中にデフォルトで有効になります。 cURL は 7.10 で追加されました。
CURLOPT_POST これを有効にすると、フォーム送信と同様に、タイプ: application/x-www-form-urlencoded の通常の POST リクエストが送信されます。
CURLOPT_PUT を有効にすると、HTTP によるファイルの送信が許可されます。CURLOPT_INFILECURLOPT_INFILESIZE の両方を設定する必要があります。
CURLOPT_RETURNTRANSFER curl_exec()で取得した情報を直接出力するのではなく、ファイルストリームの形式で返します。
CURLOPT_SSL_VERIFYPEER cURLを無効にすると、サーバー側からの検証が終了します。 CURLOPT_CAINFO オプションを使用して証明書を設定します。 CURLOPT_CAPATH オプションを使用して証明書ディレクトリを設定します。 CURLOPT_SSL_VERIFYPEER (デフォルト値は 2) が有効な場合、CURLOPT_SSL_VERIFYHOSTTRUE に設定する必要があり、それ以外の場合は 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_BASICCURLAUTH_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-SHATLSv1 はどちらも使用可能な暗号化リストです。
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秘密鍵のパスワード。

:

このオプションには機密のパスワード情報が含まれているため、この PHP スクリプトを安全に保管してください。


CURLOPT_SSLKEYTYPE CURLOPT_SSLKEYで指定された秘密鍵の暗号化タイプは、"PEM"(デフォルト値)、"DER"です。 」英語」
CURLOPT_URL 取得が必要なURLアドレスはcurl_init()関数でも設定できます。
CURLOPT_USERAGENT には、HTTP リクエストに "User-Agent: " ヘッダー文字列が含まれています。
CURLOPT_USERPWD 接続に必要なユーザー名とパスワードを、"[username]:[password]"の形式で渡します。

以下のオプションのオプションのパラメータの値は、配列に設定する必要があります:

CURLOPT_HTTP200エイリアス CURLOPT_HTTPHEADER HTTP ヘッダー フィールドの設定に使用される配列。次の形式の配列を使用して設定します。                         array('Content-type: text/plain', 'Content-length: 100') FTPリクエスト後にサーバー上で実行される一連のFTPコマンド実行されました。 FTP リクエストの前にサーバー上で実行される一連の FTP コマンド。
200 応答コード配列。配列内の応答は正しい応答とみなされ、それ以外の場合はエラーとみなされます。 cURL 7.10.3 で追加されました。
CURLOPT_POSTQUOTE

CURLOPT_QUOTE

对于下面的这些option的可选参数,value应该被设置一个流资源 (例如使用fopen()):

选项 可选value
CURLOPT_FILE 设置输出文件的位置,值是一个资源类型,默认为STDOUT (浏览器)。
CURLOPT_INFILE 在上传文件的时候需要读取的文件地址,值是一个资源类型。
CURLOPT_STDERR 设置一个错误输出地址,值是一个资源类型,取代默认的STDERR
CURLOPT_WRITEHEADER 设置header部分内容的写入的文件地址,值是一个资源类型。

对于下面的这些option的可选参数,value应该被设置为一个回调函数名:

选项 可选value
CURLOPT_HEADERFUNCTION 设置一个回调函数,这个函数有两个参数,第一个是cURL的资源句柄,第二个是输出的header数据。header数据的输出必须依赖这个函数,返回已写入的数据大小。
CURLOPT_PASSWDFUNCTION 设置一个回调函数,有三个参数,第一个是cURL的资源句柄,第二个是一个密码提示符,第三个参数是密码长度允许的最大值。返回密码的值。
CURLOPT_PROGRESSFUNCTION 设置一个回调函数,有三个参数,第一个是cURL的资源句柄,第二个是一个文件描述符资源,第三个是长度。返回包含的数据。
CURLOPT_READFUNCTION 回调函数名。该函数应接受三个参数。第一个是 cURL resource;第二个是通过选项 CURLOPT_INFILE 传给 cURL 的 stream resource;第三个参数是最大可以读取的数据的数量。回 调函数必须返回一个字符串,长度小于或等于请求的数据量(第三个参数)。一般从传入的 stream resource 读取。返回空字符串作为 EOF(文件结束) 信号。
CURLOPT_WRITEFUNCTION 回调函数名。该函数应接受两个参数。第一个是 cURL resource;第二个是要写入的数据字符串。数 据必须在函数中被保存。函数必须返回准确的传入的要写入数据的字节数,否则传输会被一个错误所中 断。

返回值

成功时返回 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(&#39;name&#39; => &#39;Foo&#39;, &#39;file&#39; => &#39;@/home/user/test.png&#39;);
curl_setopt($ch, CURLOPT_URL, &#39;http://localhost/upload.php&#39;);
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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。