ホームページ  >  記事  >  バックエンド開発  >  PHPでcurlを使う方法

PHPでcurlを使う方法

WBOY
WBOYオリジナル
2016-06-23 14:30:30850ブラウズ

PHP の CURL 関数ライブラリ (クライアント URL ライブラリ関数)

curl_close ? Curl セッションを閉じる

curl_copy_handle ? 現在のエラー情報を含む数値を返すsession
curl_error ? 現在のセッションのエラー情報を含む文字列を返します
curl_exec ?curl 接続リソース ハンドルに関する情報を取得します
curl_init ?curl バッチに単一のcurlを追加しますsession リソースを処理します
curl_multi_close ? バッチ ハンドル リソースを閉じます
curl_multi_getcontent ? 取得した出力のテキスト ストリームを返します
curl_multi_info_read ?curl バッチを初期化しますハンドル リソース
curl_multi_remove_handle ?curl バッチ ハンドル リソース内のハンドル リソースを削除します
curl_multi_select?cURL 拡張子に関連付けられているすべてのソケットを取得し、「選択」できます
curl_setopt_array を配列の形式で設定しますパラメータ
curl_setopt ?curl のセッションパラメータを設定します
curl_version?curl 関連のバージョン情報を取得します
curl_init() 関数の唯一のパラメータは、curl セッションを初期化することです。 URL アドレス。
curl_exec() 関数は、curl セッションを実行するために使用されます。唯一のパラメーターは、curl_init() 関数によって返されるハンドルです。
curl_close() 関数は、curl セッションを閉じるために使用されます。唯一のパラメータは、curl_init() 関数によって返されるハンドルです。

$ch =curl_init ( " http://www.baidu.com/ " ) ;

curl_close ( $ch ) ;



curl_version( ) 関数は、curl 関連のバージョン情報を取得するためのものです。

print_r (curl_version ())
?>

curl_getinfo() というパラメーターがあります。この関数は、curl 接続リソース ハンドルに関する情報を取得するためのもので、curl_getinfo() 関数には 2 つのパラメーターがあります。最初のパラメーターは、curl リソース ハンドルであり、2 番目のパラメーターは次の定数です:

$ ch =curl_init ( " http://www.baidu.com/ " ) ;

print_r (curl_getinfo ( $ch )) ;

オプションの定数: 最後の有効な URL アドレス

CURLINFO_HTTP_コード

最後に受信した HTTP コード

CURLINFO_FILETIME
ドキュメントがリモートで取得された時刻 (取得できない場合、戻り値は「-1」)

CURLINFO_TOTAL_TIME

前回の送信にかかった時間

CURLINFO_NAMELOOKUP_ TIME

名前解析に費やした時間


CURLINFO_CONNECT_TIME

接続の確立に費やした時間


CURLINFO_PRETRANSFER_TIME

接続の確立から送信の準備に費やした時間


CURLINFO_STARTTRANSFER_TIME

接続の確立から送信の開始までに費やした時間


CURLINFO_トランザクション転送の CT_TIME

にかかる時間開始前にリダイレクト


CURLINFO_SIZE_UPLOAD

アップロードされたデータの合計値


CURLINFO_SIZE_DOWNLOAD

ダウンロードされたデータの合計値


CURLINFO_SPEED_DOWNLOAD

平均ダウンロード速度


CURLINFO_SPEED_UPLOAD

平均アップロード速度


CURLINFO_HEADER_SIZE

ヘッダー部分のサイズ


CURLINFO_HEADER_OUT

文字列リクエストを送信します


CURLINFO_REQUEST_SIZE

HTTP リクエスト内の該当のリクエストのサイズ


CURLINFO_SSL_VERIFYRESULT

CURLOPT_SSL_VERIFYPEER の設定によって要求された SSL 証明書検証の結果


CURLINFO_CONTENT_LENGTH_DOWNLOAD

コンテンツから読み取る長さ: フィールド ダウンロード コンテンツの長さ


CURLINFO_CONTENT_LENGTH_UPLOAD

アップロードコンテンツのサイズの説明


CURLINFO_CONTENT_TYPE

ダウンロードされたコンテンツの「Content-type」値、NULL は、サーバーが有効な「Content-Type: header」を送信しなかったことを意味します


curl_setopt() 関数は、curl がセッションパラメータを設定するために使用されます。 curl_setopt_array() 関数は、curl のセッション パラメータを配列形式で設定するために使用されます。

$ch =curl_init() ;

$fp = fopen ( "example_homepage.txt " , " w " ) ;

$options = array (
CURLOPT_URL => ' http://www.baidu.com/ ' ,

CURLOPT_HEADER => false ) ;

curl_exec ( $ch ) ; ;
fclose ($fp)

;

設定できるパラメータは次のとおりです:

CURLOPT_AUTOREFERER
ヘッダーにリファラー情報を自動的に設定します

CURLOPT_BINARYTRANSFER
CURLOPT_RETURNTRANSFER が有効な場合、データが返されます

CURLOPT_COOKIESESSION
有効な場合、curl はセッション Cookie を 1 つだけ渡す、他の Cookie を無視します、デフォルト この場合、curl はすべての 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
アクティブな FTP ダウンロードを実行するときに EPRT (および LPRT) を使用するには TRUE。EPRT と LPRT を無効にして PORT のみを使用するには、FALSE を使用します。
PASV に戻す前に FALSE に設定します。 EPSV を無効にします。

CURLOPT_FTPAPPEND
TRUE を指定すると、上書きされずにリモート ファイルに追加されます。

CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT のエイリアス。 TP ディレクトリ。

有効にすると、ヘッダー ファイル情報がデータ ストリームとして出力されます。


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 は無効になっています (デフォルトは 2)。cURL 7.10 ではデフォルトのバンドルがインストールされています。FTP 転送では、ASCII モードを使用してデータを取得します。 HTML。Windows システムでは、ドメイン名が変更された場合でも、STDOUT をバイナリ モードに設定しません。


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

FTP 認証方法 (有効な場合): CURLFTPAUTH_SSL (最初に SSL を試す)、CURLFTPAUTH_TLS (最初に TLS を試す)、または CURLFTPAUTH_DEFAULT (cURL に決定させる)。

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)

CURLOPT_HTTPAUTH
使用される HTTP 検証方法、オプションの値は次のとおりです。 CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_GSSNEGOTIATE、CURLAUTH_NTLM、CURLAUTH_ANY、CURLAUTH_ANYSAFE、「|」演算子を使用して複数の値を区切ることができます。curl は、CURLAUTH_BASIC | CURLAUTH_GSSNEGOTIATE | CURLAUTH_ANY と同等です。 URLAUTH_NTLM、CURLAUTH_ANYSAFE、 etc. CURLAUTH_DIGEST | Curlauth_GSSSNEGotia | Curlauth_ntlm

Curlopt_infilesize
アップロードファイルのサイズを設定します

Curlopt_low_limit

送信速度が Curlopt_low_limit_limit 未満の場合、PHP は 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

プロキシ接続に使用する HTTP 認証方法。プロキシ認証には、現在 CURLAUTH_BASIC と CURLAUTH_NTLM のみが使用されます。

CURLOPT_PROXYPORT

接続するプロキシのポート番号。

CURLOPT_PROXYTYPE

転送を再開するときに CURLPROXY_HTTP (デフォルト) または CURLPROXY_SOCKS5 を渡します。のために転送を再開しました)

CURLOPT_SSL_VERIFYHOST

1 は SSL ピア証明書内の共通名の存在を確認します。
2 は共通名の存在を確認し、それが指定されたホスト名と一致することも確認します

CURLOPT_SSLVERSION
SSL バージョン ( 2 または 3) を使用します。デフォルトでは、PHP はこれを自身で決定しようとしますが、場合によってはこれを手動で設定する必要があります。

CURLOPT_TIMECONDITION

CURLOPT_TIMEVALUE で指定された時間が経過した後に、それが編集されている場合は、CURL_TIMECOND_IFMODSINCE を使用します。ページが変更されておらず、CURLOPT_HEADER が true の場合、「304 Not Modified」ヘッダーが返されます。CURLOPT_HEADER が false の場合、デフォルト値は CURL_TIMECOND_IFMODSINCE です。
CURLOPT_TIMEOUT

許可される最大秒数。実行する


CURLOPT_TIMEVALUE

CURLOPT_TIMECONDITION で使用されるタイムスタンプを設定します。デフォルトでは、CURL_TIMECOND_IFMODSINCE が使用されます


CURLOPT_CAINFO

これは、CURLOPT_SSL_CAPATH

と組み合わせて使用​​する場合にのみ意味を持ちます。複数の CA 証明書を保持するディレクトリ。このオプションを CURLOPT_SSL_VERIFYPEER と併用します。

CURLOPT_COOKIE

HTTP リクエストの「Set-Cookie:」部分の内容を設定します。

CURLOPT_COOKIEFILE

Cookie 情報を含むファイルの名前は、Netscape 形式または HTTP スタイルのヘッダー情報です。

CURLOPT_COOKIEJAR

接続が閉じられた後に Cookie 情報を保存するファイルの名前

CURLOPT_CUSTOMREQUEST

HTTP リクエストを実行するときに「GET」または「HEAD」の代わりに使用するカスタム リクエスト メソッド。これは「DELETE」を実行する場合に便利です。有効な値は、「GET」、「POST」、「CONNECT」などです。たとえば、「GET /index」と入力しないでください。 .html HTTP/1.0rnrn ” は正しくありません。
注:

CURLOPT_EGSOCKET
エントロピー収集デーモン ソケットへのファイル名を除いて、CURLOPT_RANDOM_FILE と同様です。 CURLOPT_ENCODING

ヘッダーの「Accept」 -Encoding: 「コンテンツの一部。サポートされているエンコード形式は、「identity」、「deflate」、「gzip」です。空の文字列に設定すると、すべてのエンコード形式がサポートされることを意味します


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 セキュリティが 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
SSL に使用する暗号のリスト。たとえば、RC4-SHA と TLSv1 は有効な暗号リストです。

CURLOPT_SSLCERT
証明書を含む文字列を PEM 形式で渡します。

CURLOPT_SSLCERTPASSWD
CURLOPT_SSLCERT 証明書を使用するために必要なパスワードを含むパスを渡します。

CURLOPT_SSLCERTTYPE
サポートされている形式は、「PEM」(デフォルト)、「DER」、および「ENG」です。

CURLOPT_SSLENGINE
CURLOPT_SSLKEY で指定された暗号化エンジンの識別子。 CURLOPT_SSLENGINE_DEFAULT

非対称暗号化操作に使用される暗号化エンジンの識別子


CURLOPT_SSLKEY

秘密 SSL キーを含むファイルの名前


CURLOPT_SSLKEYPASSWD

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

CURLOPT_SSLKEYTYPE
CURLOPT_SSLKEY で指定される秘密 SSL キーのキー タイプは、「PEM」 (デフォルト)、「DER」です。

CURLOPT_URL

取得するURLアドレスはPHPのcurl_init()関数でも設定できます。

CURLOPT_USERAGENT

HTTP リクエスト内の「user-agent」ヘッダーを含む文字列。

CURLOPT_USERPWD

接続に必要なユーザー名とパスワードを「[ユーザー名]:[パスワード]」の形式で渡します。

CURLOPT_HTTP200ALIASES

エラーの形式で HTTP 200 応答を処理しないように設定します。形式は配列です。

CURLOPT_HTTPHEADER

ヘッダーに送信内容の配列を設定します。

CURLOPT_POSTQUOTE

FTP リクエストの実行後にサーバー上で実行される FTP コマンドの配列。値はリソース タイプで、デフォルトは 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 つ目は、書き込まれたデータです。データの書き込みはこの関数に依存する必要があります。書き込まれたデータの正確なサイズを返します

curl_copy_handle() 関数の機能は、curl 接続リソースのすべてのコンテンツとパラメーターをコピーすることです


$ch =curl_init ( " http://www. baidu.com/ " ) ;
$another =curl_copy_handle ( $ch ) ;

curl_exec ( $another ) ;

Curl_close ( $another ) ;
?>

curl_error() 関数の機能は、現在のセッションのエラー情報を含む文字列を返すことです。
curl_errno() 関数の機能は、現在のセッションのエラー情報を含む数値を返すことです。

curl_multi_init() 関数は、curl バッチ ハンドル リソースを初期化するために使用されます。
curl_multi_add_handle() 関数は、個々の CURL ハンドル リソースを CURL バッチ セッションに追加するために使用されます。 curl_multi_add_handle() 関数には 2 つのパラメータがあります。最初のパラメータは CURL バッチ ハンドル リソースを表し、2 番目のパラメータは別の CURL ハンドル リソースを表します。
curl_multi_exec() 関数は、curl バッチ ハンドルを解析するために使用されます。curl_multi_exec() 関数には 2 つのパラメーターがあり、最初のパラメーターはバッチ ハンドル リソースを表し、2 番目のパラメーターは残りが必要であることを示します。処理された個々のカール ハンドル リソースの数。
curl_multi_remove_handle() 関数は、curl バッチ ハンドル リソース内のハンドル リソースの削除を表します。curl_multi_remove_handle() 関数には 2 つのパラメータがあり、2 番目のパラメータは別の Curl ハンドル リソースを表します。 。
curl_multi_close() 関数は、バッチ ハンドル リソースを閉じるために使用されます。

$ch1=curl_init() ;
curl_setopt ($ch1 , CURLOPT_URL , " http://www.baidu.com/ " ) ; , CURLOPT_HEADER , 0 ) ;
curl_setopt ( $ch2 , CURLOPT_URL , " http://www.google.com/ " ) ;
$mh =curl_multi_init() ; ( $mh , $ch1 ) ;
curl_multi_add_handle ( $mh , $ch2 ) ;
do {
curl_multi_exec ( $mh , $flag )
} while ( $flag > 0 ) ; ;
curl_multi_remove_handle ( $mh , $ch2 ) ;
curl_multi_close ( $mh ) ;
?>

curl_multi_getcontent() 関数の機能は、CURLOPT_RETURNTRANSFER が設定されている場合に取得された出力のテキスト ストリームを返すことです。

curl_multi_info_read() 関数は、現在解析されているcurlの関連する送信情報を取得するために使用されます。
curl_multi_select()
cURL 拡張機能に関連付けられたすべてのソケットを取得し、「選択」することができます

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