ホームページ > バックエンド開発 > PHPチュートリアル > [Jie Ge が PHP について簡単に説明] 第 15 章 - cURL を使用して Web コンテンツを取得する

[Jie Ge が PHP について簡単に説明] 第 15 章 - cURL を使用して Web コンテンツを取得する

WBOY
リリース: 2016-06-13 13:23:48
オリジナル
1034 人が閲覧しました

[Jie Ge が PHP について簡単に語る] 第 15 章 --- cURL を使用して Web コンテンツを取得する

最近、一部の学生が問題に対処するのを手伝っているときに、彼らが file_get_contents() 関数を使用してページのコンテンツを収集していることに突然気づきました。彼らには、curl の概念も知識もまったくないようです。非常に鈍感なツール、

この記事では、cURL の簡単な使い方を詳しく紹介します。以下では、cURL の高度なアプリケーションを詳しく紹介します。

それでは、早速、cURL とは何かを理解しましょう。このツールについて聞いたことがない学生も多いかもしれません。まず、cURL について簡単に説明します。

cURL は、URL 構文を使用してブラウザをシミュレートしてデータを送信できます。

シミュレートされたブラウザであるため、複数のプロトコルもサポートしています。

FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE、および LDAP プロトコルは十分にサポートされており、以下のプロトコルも含まれます:

HTTPS 認証、HTTP POST メソッド、HTTP PUT メソッド、FTP アップロード、keyberos 認証、HTTP アップロード、プロキシ サーバー、Cookie、ユーザー名/パスワード認証、

ファイルのダウンロードを再開、ファイルのアップロードを再開、http プロキシ サーバー パイプライン、IPv6、Scoket5 プロキシ サーバーもサポート、http プロキシ サーバー経由でファイルをアップロード

FTPサーバーなどへ。

これが cURL を使用する理由です。

cURL を使用して単純なリクエストを完了する手順は、主に次の 4 つのステップに分かれています:

1. 新しい cURL リソースを初期化して作成します

2. URL と対応するオプションを設定します

3. URL を取得してブラウザに渡します

4. cURL リソースを閉じ、システム リソースを解放します

ページを収集しましょう。通常、file_get_contents() 関数を使用して次の情報を取得します。

次のように:
  1. $str = file_get_contents('http://bbs.lampbrother.net');
  2. / /または:
  3. $str = file("http://bbs.lampbrother.net");
  4. //または :
  5. readfile("http://bbs.lampbrother.net");
  6. ?>

このようにすると、エラーを効果的に処理する方法がないことがわかり、さらに重要なことに、いくつかの難しいタスクを完了する方法がないことがわかります:

Cookie の処理、検証、フォームの送信、ファイルのアップロードなど。

それでは、コード を使用して、cURL の上記の 4 つの手順を完了しましょう。
  1. //1. 初期化、新しい cURL リソースを作成します
  2. $ch =curl_init();
  3. //2. URL と対応するオプションを設定します
  4. curl_setopt($ch, CURLOPT_URL, "http://www.lampbrother.net / ");
  5. curl_setopt($ch, CURLOPT_HEADER, 0);
  6. //3. URL を取得してブラウザに渡します
  7. curl_exec($ch);
  8. //4. cURL リソースを閉じ、システム リソースを解放します
  9. curl_close($ch);
  10. ?>

上記の 4 つの手順のうち、2 番目の手順が最も重要です。
の詳細オプションを設定できます。

たとえば、上記の例の CURLOPT_URL と CURLOPT_HEADER は、それぞれ「取得する必要がある URL アドレス」と「有効にすると、ヘッダー ファイルの情報がデータ ストリームとして出力されます。これらは氷山の一角にすぎません。
などの多くのオプションを設定することもできます。
オプション オプション 備考
CURLOPT_AUTOREFERER Location: に基づいてリダイレクトする場合、ヘッダーに Referer: 情報が自動的に設定されます。
CURLOPT_BINARYTRANSFER CURLOPT_RETURNTRANSFER が有効な場合、生の出力を返します。
CURLOPT_COOKIESESSION 有効にすると、curl は 1 つのセッション Cookie のみを渡し、他の Cookie を無視します。デフォルトでは、curl はすべての Cookie をサーバーに返します。セッション Cookie は、サーバー側のセッションが有効かどうかを判断するために使用される Cookie を指します。
CURLOPT_CRLF 有効にすると、Unix の改行文字が復帰文字と改行文字に変換されます。
CURLOPT_DNS_USE_GLOBAL_CACHE 有効にすると、グローバル DNS キャッシュが有効になり、デフォルトで有効になります。
CURLOPT_FAILONERROR HTTP ステータス コードを表示します。デフォルトの動作では、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 有効にすると、FTP 転送中に PASV モードに戻る前に、まず EPSV コマンドが試行されます。 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_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 に保存されます。


option の次のオプション パラメータの場合、value は整数型の値に設定する必要があります:

アップロードされるファイルのサイズ制限をバイト単位で設定します。 送信速度が 送信速度が 許可される接続の最大数。超過した場合、HTTP リダイレクトの最大数を指定します。このオプションは は接続ポートの指定に使用します。 (オプション) CURLOPT_HTTPAUTHCURLOPT_PROXYCURLPROXY_HTTPCURLPROTO_*CURLOPT_TIMEVALUECURLOPT_TIMECONDITION

option の次のオプション パラメータの場合、value は文字列型の値に設定する必要があります:

オプション オプション 備考
CURLOPT_BUFFERSIZE キャッシュのサイズは取得されるデータに毎回読み込まれますが、この値が毎回満たされるという保証はありません。 cURL 7.10 で追加されました。
CURLOPT_CLOSEPOLICY CURLCLOSEPOLICY_LEAST_RECENTLY_USED または CURLCLOSEPOLICY_OLDEST 他に 3 つの CURLCLOSEPOLICY_ がありますが、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_DEFAULT (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_HTTPAUTH
使用される HTTP 認証方法。オプションの値は次のとおりです: CURLAUTH_BASICCURLAUTH_DIGESTCURLAUTH_GSSNEGOTIATECURLAUTH_NTLMCURLAUTH_ANY CURLAUTH_ANYSAFE| ビットフィールド (または) 演算子を使用して複数の値を区切ることができ、cURL ではサーバーがそれを最もよくサポートする値を選択できます。
CURLAUTH_ANYCURLAUTH_BASIC | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM と同等です。 CURLAUTH_ANYSAFECURLAUTH_DIGEST | CURLAUTH_NTLM と同等です。
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_HTTPCURLPROTO_HTTPSCURLPROTO_FTP CURLPROTO_SCPCURLPROTO_SFTPCURLPROTO_TELNETCURLPROTO_LDAPCURLPROTO_LDAPSCURLPROTO_DICTプロト_ファイルCURLPROTO_TFTPCURLPROTO_ALL cURL 7.19.4 で追加されました。
CURLOPT_PROXYAUTH HTTP プロキシ接続の検証方法。 のビットフィールド フラグを使用して、対応するオプションを設定します。プロキシ認証については、現在 CURLAUTH_BASICCURLAUTH_NTLM のみがサポートされています。 cURL 7.10.7 で追加されました。
CURLOPT_PROXYPORT プロキシサーバーのポート。ポートはでも設定できます。
CURLOPT_PROXYTYPE (デフォルト) または CURLPROXY_SOCKS5 のいずれか。 cURL 7.10 で追加されました。
CURLOPT_REDIR_PROTOCOLS のビット フィールド値。有効にすると、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 で指定された一定の時間が経過した後に編集された場合は、CURL_TIMECOND_IFMODSINCE を使用してページに戻り、変更されていない場合は CURLOPT_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 で使用されるタイムスタンプを設定します。デフォルトでは、CURL_TIMECOND_IFMODSINCE が使用されます。
CURLOPT_URLCURLOPT_USERAGENTCURLOPT_USERPWD

option の次のオプション パラメータの場合、value は配列に設定する必要があります:

option の次のオプション パラメータでは、value をストリーム リソースに設定する必要があります (fopen() を使用するなど):

option の次のオプション パラメータの場合、value はコールバック関数名に設定する必要があります:
オプション オプション 備考
CURLOPT_CAINFO サーバー検証用の 1 つ以上の証明書を保持するファイル名。このパラメータは、CURLOPT_SSL_VERIFYPEER と一緒に使用した場合にのみ意味を持ちます。 .
CURLOPT_CAPATH 複数の CA 証明書を保持するディレクトリ。このオプションは、CURLOPT_SSL_VERIFYPEER とともに使用されます。
CURLOPT_COOKIE HTTP リクエストの "Cookie: " 部分の内容を設定します。複数の Cookie はセミコロンとその後のスペースで区切られます (例: "fruit=apple; colour=red")。
CURLOPT_COOKIEFILE Cookie データを含むファイル名。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" が使用されます。このオプションを 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🎜>"ENG"で指定された秘密鍵の暗号化タイプ。
取得するURLアドレスはcurl_init()関数でも設定できます。
HTTP リクエストには "User-Agent: " ヘッダー文字列が含まれます。
接続に必要なユーザー名とパスワードを "[ユーザー名]:[パスワード]" の形式で渡します。
テーブル>
ほら、2 番目の関数でこれらのオプションを設定する限り、対応する関数を完了できます。cURL の関数は非常に強力なので、試してみてください。

たとえば、取得したコンテンツをブラウザに直接出力するのではなく、単にファイルに入力したい場合は、
CURLOPT_RETURNTRANSFER
オプション!

このようにして、curlを実行するとページの内容がファイルに出力され、コレクションなどの機能が完成します!
効率の観点から言えば、curl の原理はブラウザの動作をシミュレートすることであり、その効率は

の 4 倍以上です。 膨大な情報を持つ Web サイトを収集するには、業務効率の違いが想像できます。
効率だけでなく、安定性の点でも、curl は file_get_contents() 関数よりもはるかに優れています。
これは強力なカールです。以下では、ブラウザのポスト値の転送をシミュレートし、アップロードすることもできます。
どうぞお楽しみに! 元のアドレス: http://bbs.lampbrother.net/read-htm-tid-121338.html
オプション オプション
选项 可选value
CURLOPT_HEADERFUNCTION 设置一个回调函数,这个函数有两个参数,第一个是cURL的资源句柄,第二个是输出的header数据。header数据的输出必须依赖这个函数,返回已写入的数据大小。
CURLOPT_PASSWDFUNCTION 设置一个回调函数,有三个参数,第一个是cURL的资源句柄,第二个是一个密码提示符,第三个参数是密码长度允许的最大值。返回密码的值。
CURLOPT_PROGRESSFUNCTION 设置一个回调函数,有三个参数,第一个是cURL的资源句柄,第二个是一个文件描述符资源,第三个是长度。返回包含的数据。
CURLOPT_READFUNCTION 拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此函数,将自行处理返回的数据。返回值为数据大小,以字节计。返回0代表EOF信号。
CURLOPT_WRITEFUNCTION 拥有两个参数的回调函数,第一个是参数是会话句柄,第二是HTTP响应头信息的字符串。使用此回调函数,将自行处理响应头信息。响应头信息是整个字符串。设置返回值为精确的已写入字符串长度。发生错误时传输线程终止。

CURLOPT_HEADERFUNCTION コールバック関数を設定します。この関数には 2 つのパラメータがあります。1 つ目は cURL リソース ハンドルで、2 つ目は出力ヘッダー データです。ヘッダー データの出力は、書き込まれたデータのサイズを返すこの関数に依存する必要があります。
CURLOPT_PASSWDFUNCTION

3 つのパラメータを使用してコールバック関数を設定します。1 つ目は cURL リソース ハンドル、2 つ目はパスワード プロンプト、3 つ目のパラメータは許可されるパスワードの最大長です。パスワードの値を返します。
CURLOPT_PROGRESSFUNCTION 3 つのパラメータを使用してコールバック関数を設定します。1 つ目は cURL リソース ハンドル、2 つ目はファイル記述子リソース、3 つ目は長さです。含まれているデータを返します。
CURLOPT_READFUNCTION は、2 つのパラメータを持つコールバック関数です。最初のパラメータはセッション ハンドルで、2 番目のパラメータは HTTP 応答ヘッダー情報の文字列です。この関数を使用すると、返されたデータが自分で処理されます。戻り値はデータ サイズ (バイト単位) です。 0 を返すと、EOF 信号を表します。
CURLOPT_WRITEFUNCTION
は、2 つのパラメータを持つコールバック関数です。最初のパラメータはセッション ハンドルで、2 番目のパラメータは HTTP 応答ヘッダー情報の文字列です。このコールバック関数を使用すると、応答ヘッダー情報が単独で処理されます。応答ヘッダー情報は文字列全体です。戻り値を、書き込まれた文字列の正確な長さに設定します。エラーが発生すると、トランスポート スレッドは終了します。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート