1.CURL は、URL 構文を使用してコマンド ライン モードで動作するオープン ソースのファイル転送ツールです。
2. Unix およびさまざまな Linux ディストリビューションで広く使用されており、DOS、Win32、および Win64 でのバージョンが移植されています。
3. 多くのプロトコルをサポートしています: FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE、LDAP。
4.CURL はスウェーデンの CURLl 組織によって開発されました。ソース コードと関連手順を入手するには、http://curl.haxx.se にアクセスしてください。
5.PHP CURL 関数リスト:
関数
説明
curl_close() | cURL セッションを閉じます。 |
curl_copy_handle() | cURL ハンドルとそのすべてのオプションをコピーします。 |
curl_errno() | 最後のエラー番号を返します。 |
curl_error() | 現在のセッションの最新のエラーを保護する文字列を返します。 |
curl_escape() | 指定された文字列を URL エンコードして、エスケープされた文字列を返します。 |
curl_exec() | cURL セッションを実行します。 |
curl_file_create() | CURLFile オブジェクトを作成します。 |
curl_getinfo() | cURL 接続リソース ハンドルに関する情報を取得します。 |
curl_init() | cURL セッションを初期化します。 |
curl_multi_add_handle() | 個々の Curl ハンドルを Curl バッチ セッションに追加します。 |
curl_multi_close() | cURL ハンドルのグループを閉じます。 |
curl_multi_exec() | 現在の cURL ハンドルのサブ接続を実行します。 |
curl_multi_getcontent() | CURLOPT_RETURNTRANSFER が設定されている場合は、取得した出力のテキスト ストリームを返します。 |
curl_multi_info_read() | 現在解析されている cURL の関連する送信情報を取得します。 |
curl_multi_init() | 新しい cURL バッチ ハンドルを返します。 |
curl_multi_remove_handle() | Curl バッチ ハンドル リソース内のハンドル リソースを削除します。 |
curl_multi_select() | すべての cURL バッチでアクティブな接続を待ちます。 |
curl_multi_setopt() | バッチ cURL 転送オプションを設定します。 |
curl_multi_strerror() | エラー コードを説明する文字列テキストを返します。 |
curl_pause() | 接続を一時停止して再開します。 |
curl_reset() | libcurl のセッション ハンドルのすべてのオプションをリセットします。 |
curl_setopt_array() | cURL 転送セッションのオプションを一括で設定します。 |
curl_setopt() | cURL 転送オプションを設定します。 |
curl_share_close() | cURL 共有ハンドルを閉じます。 |
curl_share_init() | cURL 共有ハンドルを初期化します。 |
curl_share_setopt() | 共有ハンドルの cURL 転送オプションを設定します。 |
curl_strerror() | エラー コードの説明文字列を返します。 |
curl_unescape() | URL エンコードされた文字列をデコードします。 |
curl_version() | cURL のバージョン情報を取得します。 |
6. CURL開発の基本手順
(1) 初期化:curl_init()
(2) 変数を設定:curl_setopt() またはcurl_setopt_array()
(3) 実行して結果を取得:curl_exec( )
(4) CURL ハンドルを解放します:curl_close()
7.CURLOPT パラメータの概要:
CURLOPT_AUTOREFERER
ヘッダーにリファラー情報を自動的に設定します
CURLOPT_BINARYTRANSFER
CURLOPT_RETURNTRANSFER が有効な場合、データが返されます
CURLOPT_COOKIESESSION
有効にすると、curl はセッション Cookie のみを渡し、他の Cookie を無視します。カールしますすべての Cookie を保存する サーバーに戻ります。セッション Cookie は、サーバー側のセッションが有効かどうかを判断するために使用される Cookie を指します。
CURLOPT_CRLF
有効にすると、Unix の改行文字が復帰文字と改行文字に変換されます。
CURLOPT_DNS_USE_GLOBAL_CACHE
有効にすると、グローバル DNS キャッシュが有効になり、デフォルトは true になります。
CURLOPT_FAILONERROR
HTTP ステータス コードを表示します。デフォルトの動作では、400 以下の数値を持つ HTTP 情報を無視します。
CURLOPT_FILETIME
有効にすると、リモート ドキュメント内の情報の変更が試行されます。結果情報は、curl_getinfo() 関数の CURLINFO_FILETIME オプションを通じて返されます。
CURLOPT_FOLLOWLOCATION
有効にすると、サーバーから返される「Location:」がヘッダーに配置され、再帰的に返される回数を制限するために CURLOPT_MAXREDIRS を使用します。
CURLOPT_FORBID_REUSE
インタラクションの完了後に接続が強制的に切断され、再利用できなくなります。
CURLOPT_FRESH_CONNECT
キャッシュ内の接続を新しい接続に強制的に置き換えます。
CURLOPT_FTP_USE_EPRT
CURLOPT_FTP_USE_EPSV
CURLOPT_FTPAPPEND
CURLOPT_FTPASCII
CURLOPT_FTPLISTONLY
CURLOPT_HEADER
有効にすると、ヘッダー ファイル情報がデータ ストリームとして出力されます。
CURLOPT_HTTPGET
有効にすると、HTTP メソッドは GET に設定されるため、GET は変更された場合にのみ使用されます。
CURLOPT_HTTPPROXYTUNNEL
有効にすると、HTTP プロキシ経由で送信されます。
CURLOPT_MUTE
Curl 関数で変更されたすべてのパラメーターをデフォルト値に戻すことについて話します。
CURLOPT_NETRC
接続が確立されたら、~/.netrc ファイルにアクセスして、リモート サイトに接続するためのユーザー名とパスワード情報を取得します。
CURLOPT_NOBODY
有効にすると、HTML の本文部分が出力されなくなります。
CURLOPT_NOPROGRESS
有効にすると、curl 送信の進行状況バーをオフにします。
CURLOPT_NOSIGNAL
有効にすると、curl によって php に渡されるすべてのシグナルを無視します。この項目は、SAPI マルチスレッド送信時にデフォルトでオンになります。
CURLOPT_POST
有効にすると、フォーム送信と同様に、application/x-www-form-urlencoded と入力して、通常の POST リクエストが送信されます。
CURLOPT_PUT
有効にすると、HTTP で CURLOPT_INFILE と CURLOPT_INFILESIZE を同時に設定する必要があります。
CURLOPT_RETURNTRANSFER
curl_exec() によって取得された情報は、直接出力されるのではなく、ファイル ストリームの形式で返されます。 。
CURLOPT_SSL_VERIFYPEER
CURLOPT_TRANSFERTEXT
CURLOPT_UNRESTRICTED_AUTH
ドメイン名が変更された場合でも、CURLOPT_FOLLOWLOCATION を使用して生成されたヘッダー内の複数の場所にユーザー名とパスワードの情報を継続的に追加します。
CURLOPT_UPLOAD
有効にするとファイル転送を許可します
CURLOPT_VERBOSE
有効にすると、すべての情報が報告され、STDERR または指定された CURLOPT_STDERR に保存されます
CURLOPT_BUFFERSIZE
この値は、データが取得されるたびに読み取られます。毎回読まれます。
CURLOPT_CLOSEPOLICY
CURLCLOSEPOLICY_LEAST_RECENTLY_USED または CURLCLOSEPOLICY_OLDEST のいずれか、他に 3 つありますが、curl はまだそれらをサポートしていません。
CURLOPT_CONNECTTIMEOUT
接続を開始するまでの待機時間。0 に設定すると、待機は行われません。
CURLOPT_DNS_CACHE_TIMEOUT
DNS 情報をメモリに保存する時間を設定します。デフォルトは 120 秒です。
CURLOPT_FTPSSLAUTH
CURLOPT_HTTP_VERSION
curl で使用される HTTP プロトコル、CURL_HTTP_VERSION_NONE (curl 自身に決定させる)、CURL_HTTP_VERSION_1_0 (HTTP/1.0)、CURL_HTTP_VERSION_1_1 (HTTP/1.1) を設定します。 HTTPAUTH
使用される HTTP 認証方法、オプションの値: CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_GSSNEGOTIATE、CURLAUTH_NTLM、CURLAUTH_ANY、CURLAUTH_ANYSAFE を使用すると、サーバーは CURLAUTH_BASIC | CURLAUTH_GSSNEGOTI と同等の値を選択できます。 ATE | カール認証_NTLM、 CURLAUTH_ANYSAFE など CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE で価格設定
CURLOPT_INFILESIZE
アップロードするファイルのサイズを設定
CURLOPT_LOW_SPEED_LIMIT
転送速度が CURLOPT_LOW_SPEED_LIMIT 未満の場合、P HP は、CURLOPT_LOW_SPEED_TIME を使用して、送信をキャンセルするかどうかを決定します。遅すぎる。
CURLOPT_LOW_SPEED_TIME
PHP が転送が遅すぎると判断して中止するには、転送の秒数が CURLOPT_LOW_SPEED_LIMIT を下回る必要があります。送信速度が CURLOPT_LOW_SPEED_LIMIT 未満の場合、PHP は CURLOPT_LOW_SPEED_TIME を使用して、遅すぎるため送信をキャンセルするかどうかを判断します。
CURLOPT_MAXCONNECTS
許可される接続の最大数を超えた場合、CURLOPT_CLOSEPOLICY を使用してどの接続を停止するかを決定します
CURLOPT_MAXREDIRS
HTTP リダイレクトの最大数を指定します。このオプションは CURLOPT_FOLLOWLOCATION と一緒に使用されます。
CURLOPT_PORT
接続ポートを指定するオプションの量
CURLOPT_PROXYAUTH
CURLOPT_PROXYPORT
CURLOPT_PROXYTYPE
CURLOPT_RESUME_FROM
転送再開時にバイトオフセットを渡す(ブレークポイント後にダウンロードを再開するために使用されます)
CURLOPT_SSL_VERIFYHOST
CURLOPT_SSLVERSION
CURLOPT_TIMECONDITION
CURLOPT_TIMEVALUE で指定された特定の時間後に編集された場合は、CURL_TIMECOND_IFMODSINCE を使用してページを返します。変更されておらず、CURLOPT_HEADER が true の場合は、「304 Not Modified」ヘッダーを返します。CURLOPT_HEA DER が false の場合は、CURL_TIMECOND_ISUNMODSINCE を使用します。デフォルト値は CURL_TIMECOND_IFMODSINCE です
CURLOPT_TIMEOUT
curl が実行できる最大秒数を設定します
CURLOPT_TIMEVALUE
CURLOPT_TIMECONDITION で使用されるタイムスタンプを設定します、デフォルトでは CURL_TIMECON が使用されます D_IFMODSINCE
CURLOPT_CAINFO
CURLOPT_CAPATH
CURLOPT_COOKIE
コンテンツを設定するHTTP リクエストの「Set-Cookie:」部分。
CURLOPT_COOKIEFILE
この Cookie ファイルは、Netscape 形式または HTTP スタイルのヘッダー情報を含むファイルの名前です。
CURLOPT_COOKIEJAR
接続が閉じられた後に Cookie 情報を保存するファイルの名前
CURLOPT_CUSTOMREQUEST
CURLOPT_EGSOCKET
CURLOPT_ENCODING
ヘッダー内の「Accept-Encoding:」部分の内容、エンコード形式は次のとおりです: "アイデンティティ」、「デフレート」、「gzip」。空の文字列に設定すると、すべてのエンコード形式がサポートされることを意味します。
CURLOPT_FTPPORT
CURLOPT_INTERFACE
外部ネットワーク インターフェイスで使用される名前。インターフェイス名、IP、またはホスト名にすることができます。
CURLOPT_KRB4LEVEL
KRB4 (Kerberos 4) セキュリティ レベル設定。「clear」、「safe」、「confidential」、「private」のいずれかの値になります。デフォルト値は「private」です。null に設定すると、KRB4 セキュリティは FTP 送信でのみ使用できるようになります。
CURLOPT_POSTFIELDS
HTTP の「POST」操作。ファイルを転送する場合は、@で始まるファイル名が必要です
CURLOPT_PROXY
渡すHTTPプロキシサーバーを設定します
CURLOPT_PROXYUSERPWD
接続するためのユーザー名とパスワードを「[ユーザー名]:[パスワード]」の形式で設定しますプロキシサーバーに。
CURLOPT_RANDOM_FILE
SSLで使用する乱数シードを格納するファイル名を設定します
CURLOPT_RANGE
HTTP送信範囲を設定します HTTP送信が複数ある場合は、カンマを使用して送信範囲を設定できます。倍数の値を「X-Y,N-M」の形式で区切ります。
CURLOPT_REFERER
ヘッダーの「Referer:」部分の値を設定します。
CURLOPT_SSL_CIPHER_LIST
CURLOPT_SSLCERT
PEM 形式で証明書を含む文字列を渡します。
CURLOPT_SSLCERTPASSWD
CURLOPT_SSLCERT 証明書を使用するために必要なパスワードを含むパスを渡します。
CURLOPT_SSLCERTTYPE
CURLOPT_SSLENGINE
CURLOPT_SSLENGINE_DEFAULT
CURLOPT_SSLKEY
CURLOPT_SSLKEYPASSWD
CURLOPT_SSLKEYTYPE
CURLOPT_URL
取得するURLアドレスはPHPのcurl_init()関数でも設定できます。
CURLOPT_USERAGENT
HTTP リクエスト内の「user-agent」ヘッダーを含む文字列。
CURLOPT_USERPWD
接続に必要なユーザー名とパスワードを「[ユーザー名]:[パスワード]」の形式で渡します。
CURLOPT_HTTP200ALIASES
エラーの形式で HTTP 200 応答を処理しないように設定します。形式は配列です。
CURLOPT_HTTPHEADER
ヘッダーに送信内容の配列を設定します。
CURLOPT_POSTQUOTE
CURLOPT_QUOTE
CURLOPT_FILE
出力ファイルの場所を設定します。値はリソースタイプで、デフォルトは STDOUT (ブラウザー) です。
CURLOPT_INFILE
ファイルをアップロードするときに読み取る必要があるファイル アドレス。値はリソース タイプです。
CURLOPT_STDERR
エラー出力アドレスを設定します。値はリソースタイプであり、デフォルトの STDERR を置き換えます。
CURLOPT_WRITEHEADER
ヘッダー部分が書き込まれるファイルアドレスを設定します。値はリソースタイプです。
CURLOPT_HEADERFUNCTION
コールバック関数を設定します。この関数には 2 つのパラメータがあります。1 つ目は、curl のリソース ハンドルで、2 つ目は出力ヘッダー データです。ヘッダー データの出力は、書き込まれたデータのサイズを返すこの関数に依存する必要があります。
CURLOPT_PASSWDFUNCTION
3 つのパラメーターを使用してコールバック関数を設定します。最初のパラメーターは、curl リソース ハンドル、2 番目はパスワード プロンプト、3 番目のパラメーターは、許可されるパスワードの最大長です。パスワードの値を返します。
CURLOPT_READFUNCTION
2 つのパラメータを持つコールバック関数を設定します。1 つ目は、curl のリソース ハンドルで、2 つ目は読み取りデータです。データの読み取りはこの関数に依存する必要があります。 0 または EOF など、読み取りデータのサイズを返します。
CURLOPT_WRITEFUNCTION
2 つのパラメーターを使用してコールバック関数を設定します。1 つ目は、curl リソース ハンドルで、2 つ目は、書き込まれたデータです。データの書き込みはこの関数に依存する必要があります。書き込まれたデータの正確なサイズを返します
8. CURLINFO パラメータの概要:
CURLINFO_EFFECTIVE_URL
最後に有効な URL アドレス
CURLINFO_HTTP_CODE
最後に受信した HTTP コード
CURLINFO_FILETIME
ドキュメントをリモートで取得する時間そうでない場合可能 取得した場合の戻り値は「-1」
CURLINFO_TOTAL_TIME
前回の送信に要した時間
CURLINFO_NAMELOOKUP_TIME
名前解決に要した時間
CURLINFO_CONNECT_TIME
接続の確立に要した時間
CURLINFO_ PRETRANSFER_TIME
から接続の確立から準備までの転送時間
CURLINFO_STARTTRANSFER_TIME
接続の確立から転送の開始までの時間
CURLINFO_REDIRECT_TIME
トランザクション転送が開始されるまでのリダイレクトにかかる時間
CURLINFO_SIZE_UPLOAD
アップロードされたデータの総量
CUR LIN FO_SIZE_DOWNLOAD
データをダウンロードする金額の合計値
CURLINFO_SPEED_DOWNLOAD
平均ダウンロード速度
CURLINFO_SPEED_UPLOAD
平均アップロード速度
CURLINFO_HEADER_SIZE
ヘッダー部分のサイズ
CURLINFO_HEADER_OUT
リクエストを送信する文字列
CURLINFO_REQUEST_SIZE
問題のリクエストのサイズHTTP リクエスト
CURLINFO_SSL_VERIFYRESULT
CURLINFO_CONTENT_LENGTH_DOWNLOAD
Content-Length: フィールドから読み取られたダウンロード コンテンツの長さ
CURLINFO_CONTENT_LENGTH_UPLOAD
アップロード コンテンツ サイズの説明
CURLINFO_CONTENT_ TYPE
ダウンロードされたコンテンツの「Content-type」値、NULL はサーバーが有効な「Content-Type: header」が送信されませんでした