PHP コレクションに関連するチュートリアルの 1 つ: CURL 関数ライブラリ_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:40:54
オリジナル
601 人が閲覧しました

まず簡単なページ キャプチャ関数を作成します

コードをコピーしますコードは次のとおりです:

function GetSources($Url,$User_Agent='',$Referer_Url='') / /Catch 指定されたページを取得します
{
//$Url クロールする必要があるページのアドレス
//$User_Agent "baiduspider" や "googlebot" など、返す必要がある user_agent 情報
$ch =curl_init( );
curl_setopt ($ch , CURLOPT_URL, $Url);
curl_setopt ($ch, CURLOPT_REFERER, $Referer_Url);場所をフォローしてください、1); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1);
$MySources =curl_exec ($ch);
$MySources を返す
}
$Url = "http://www.jb51.net"; //コンテンツも取得するにはいいえ
$User_Agent = "baiduspider+(+http://www.baidu.com/search/spider.htm)";
$Referer_Url = 'http://www.jb51.net/'; ;
echo GetSources($Url ,$User_Agent,$Referer_Url);




クライアント URL ライブラリ関数
curl_close — Curl 接続のすべてのコンテンツをコピーします。リソースとパラメータ;
curl_errno — 現在のセッションのエラー情報を含む数値を返します。
curl_exec — Curl 接続に関する情報を取得します。リソース ハンドル;
curl_init — Curl セッションを初期化します。
curl_multi_add_handle — 別の Curl ハンドル リソースを Curl バッチ セッションに追加します。
curl_multi_exec — 取得した Curl バッチ ハンドルを返します。出力テキストストリーム;
curl_multi_info_read — 現在解析されているcurlの関連する送信情報を取得します。
curl_multi_remove_handle — Curlバッチハンドルリソース内のハンドルリソースを削除します。 cURL 拡張子を使用して「選択」します。
curl_setopt_array — Curl のセッション パラメーターを配列形式で設定します。
curl_version — Curl 関連のバージョン情報を取得します。 curl_init() 関数は、curl セッションを初期化するために使用されます。curl_init() 関数の唯一のパラメータは、URL アドレスを表します。
curl_exec() 関数は、curl_init() 関数が返します。ハンドル;
curl_close() 関数は、curl セッションを閉じるためのもので、唯一のパラメータは、curl_init() 関数によって返されるハンドルです。
PHP コード



コードは次のとおりです:


< ; ?php
$ch =curl_init("http://blog.huangchao.org/");
curl_close($ch);


curl_version() 関数これは、curl 関連のバージョン情報を取得するためのものですが、これが何をするのかは不明です。この関数は、curl 接続リソース ハンドルに関する情報を取得します。curl_getinfo() 関数には 2 つのパラメータがあり、最初のパラメータは次の定数です。
PHP コード


コードをコピーします。コードは次のとおりです: $ch =curl_init("http://blog.huangchao.org/");
オプションの定数は次のとおりです:
CURLINFO_EFFECTIVE_URL: 最後に有効な URL アドレス;
CURLINFO_HTTP_CODE: 最後に受信した HTTP コード;
CURLINFO_FILETIME: ドキュメントを取得できない場合、戻り値は "-1" です。 CURLINFO_TOTAL_TIME: 最後の送信にかかった時間。
CURLINFO_NAMELOOKUP_TIME: 接続の確立に要した時間。
CURLINFO_STARTTRANSFER_TIME: build 転送の開始までにかかる時間
CURLINFO_REDIRECT_TIME: トランザクション転送が開始されるまでのリダイレクトにかかる時間


CURLINFO_SIZE_DOWNLOAD: の合計値ダウンロードされたデータ量;
CURLINFO_SPEED_UPLOAD: 平均アップロード速度;
CURLINFO_HEADER_OUT: リクエストを送信する文字列。 HTTP リクエスト;
CURLINFO_SSL_VERIFYRESULT: CURLOPT_SSL_VERIFYPEER の設定によって要求された SSL 証明書検証の結果
CURLINFO_CONTENT_LENGTH_UPLOAD: アップロード コンテンツのサイズの説明。 INFO_CONTENT_TYPE: 「コンテンツ」ダウンロードされたコンテンツの -type" 値。NULL は、サーバーが有効な "Content-Type: header" を送信しなかったことを意味します。
curl_setopt() 関数は、curl のセッション パラメーターを設定するために使用されます。 curl_setopt_array() の機能は、curl のセッション パラメータを配列の形式で設定することです。
PHP コード



コードをコピー

コードは次のとおりです。 ();
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
$options = array(
CURLOPT_URL => baidu.com/',
CURLOPT_HEADER => curl_setopt_array($ch);fclose($fp);設定できるパラメータは次のとおりです。
CURLOPT_AUTOREFERER: ヘッダーにリファラー情報を自動的に設定します。
CURLOPT_BINARYTRANSFER: CURLOPT_RETURNTRANSFER が有効な場合、データが返されます。
CURLOPT_COOKIESESSION: 有効にすると、curl は 1 つのセッション Cookie のみを渡し、他の Cookie を無視します。デフォルトの条件は次のとおりです。curl はすべての Cookie をサーバーに返します。セッション Cookie は、サーバー側のセッションが有効であるかどうかを判断するために存在する Cookie を指します。


CURLOPT_CRLF: 有効にすると、Unix の改行は復帰と改行に変換されます。この項目はスレッドセーフであり、デフォルトは true です。
CURLOPT_FAILONERROR: HTTP ステータス コードを表示します。デフォルトの動作は、400 以下の HTTP 情報を無視します。リモートドキュメント内の情報を変更します。結果情報は、curl_getinfo() 関数の CURLINFO_FILETIME オプションを通じて返されます。
CURLOPT_FOLLOWLOCATION: 有効にすると、サーバーから返された「Location:」がヘッダーに配置され、CURLOPT_MAXREDIRS を使用して再帰的にサーバーに返されます。再帰的な戻りの数。
CURLOPT_FORBID_REUSE: インタラクションの完了後に接続を強制的に切断し、再利用できません。
CURLOPT_FRESH_CONNECT: キャッシュ内の接続を強制的に取得します。
CURLOPT_FTP_USE_EPRT: EPRT (および LPRT) を使用します。 ) アクティブな FTP ダウンロードを実行する場合は、EPRT と LPRT を無効にして PORT のみを使用する場合は FALSE を使用します。PHP 5.0.0 で追加されました。
CURLOPT_FTP_USE_EPSV: PASV に戻す前に最初に EPSV コマンドを試行します。 EPSV;
CURLOPT_FTPAPPEND: TRUE は、上書きせずにリモート ファイルに追加します。
CURLOPT_FTPLISTONLY: 有効な場合は、CURLOPT_TRANSFERTEXT のエイリアスを使用します。ヘッダー ファイル情報はデータ ストリームとして出力されます。
CURLOPT_HTTPGET: 有効にすると、HTTP メソッドが GET に設定されます。これは GET がデフォルトであるため、変更された場合にのみ使用されます。 HTTP プロキシ経由;
CURLOPT_MUTE:curl 関数の変更されたすべてのパラメーターについて説明します。 デフォルト値を復元します。
CURLOPT_NETRC: 接続が確立された後、~/.netrc ファイルにアクセスして、接続するためのユーザー名とパスワード情報を取得します。リモート サイト;
CURLOPT_NOBODY: 有効にすると、HTML の本文部分は出力されません。
CURLOPT_NOPROGRESS: 有効にすると、curl 送信がオフになります。この項目のデフォルト設定は true です。 curl によって php に渡されるシグナルは無視されます。在SAPI多线程传输时此项被默认打开;
CURLOPT_POST:启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样;
CURLOPT_PUT:启用时允许HTTP发送文件,必须同时设置CURLOPT_INFILE和CURLOPT_INFILESIZE
CURLOPT_RETURNTRANSFER:将curl_exec()获取的信息以文件流的形式返回,而不是直接输出;


CURLOPT_SSL_VERIFYPEER:FALSE to stop cURL from verifying the peer's certificate. Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or a certificate directory can be specified with the CURLOPT_CAPATH option. CURLOPT_SSL_VERIFYHOST may also need to be TRUE or FALSE if CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2). TRUE by default as of cURL 7.10. Default bundle installed as of cURL 7.10;
CURLOPT_TRANSFERTEXT:TRUE to use ASCII mode for FTP transfers. For LDAP, it retrieves data in plain text instead of HTML. On Windows systems, it will not set STDOUT to binary mode;
CURLOPT_UNRESTRICTED_AUTH:在使用CURLOPT_FOLLOWLOCATION产生的header中的多个locations中持续追加用户名和密码信息,即使域名已发生改变;
CURLOPT_UPLOAD:启用时允许文件传输;
CURLOPT_VERBOSE:启用时会汇报所有的信息,存放在STDERR或指定的CURLOPT_STDERR中;
CURLOPT_BUFFERSIZE:每次获取的数据中读入缓存的大小,这个值每次都会被填满;
CURLOPT_CLOSEPOLICY:不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,还存在另外三个,但是curl暂时还不支持;
CURLOPT_CONNECTTIMEOUT:在发起连接前等待的时间,如果设置为0,则不等待;
CURLOPT_DNS_CACHE_TIMEOUT:设置在内存中保存DNS信息的时间,默认为120秒;
CURLOPT_FTPSSLAUTH:The FTP authentication method (when is activated): CURLFTPAUTH_SSL (try SSL first), CURLFTPAUTH_TLS (try TLS first), or CURLFTPAUTH_DEFAULT (let cURL decide);
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_ANY等价于CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM,CURLAUTH_ANYSAFE等价于CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM
CURLOPT_INFILESIZE:设定上传文件的大小;
CURLOPT_LOW_SPEED_LIMIT:当传输速度小于CURLOPT_LOW_SPEED_LIMIT时,PHP会根CURLOPT_LOW_SPEED_TIME来判断是否因太慢而取消传输;
CURLOPT_LOW_SPEED_TIME:The number of seconds the transfer should be below CURLOPT_LOW_SPEED_LIMIT for PHP to consider the transfer too slow and abort;
当传输速度小于CURLOPT_LOW_SPEED_LIMIT时,PHP会根据CURLOPT_LOW_SPEED_TIME来判断是否因太慢而取消传输;
CURLOPT_MAXCONNECTS:允许的最大连接数量,超过是会通过CURLOPT_CLOSEPOLICY决定应该停止哪些连接;
CURLOPT_MAXREDIRS:指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的;


CURLOPT_PORT:一个可选的用来指定连接端口的量;
CURLOPT_PROXYAUTH:The HTTP authentication method(s) to use for the proxy connection. Use the same bitmasks as described in CURLOPT_HTTPAUTH. For proxy authentication, only CURLAUTH_BASIC and CURLAUTH_NTLM are currently supported.
CURLOPT_PROXYPORT:The port number of the proxy to connect to. This port number can also be set in CURLOPT_PROXY.
CURLOPT_PROXYTYPE:Either CURLPROXY_HTTP (default) or CURLPROXY_SOCKS5.
CURLOPT_RESUME_FROM:在恢复传输时传递一个字节偏移量(用来断点续传)
CURLOPT_SSL_VERIFYHOST:
1 to check the existence of a common name in the SSL peer certificate.
2 to check the existence of a common name and also verify that it matches the hostname provided.
CURLOPT_SSLVERSION:The SSL version (2 or 3) to use. By default PHP will try to determine this itself, although in some cases this must be set manually.
CURLOPT_TIMECONDITION:如果在CURLOPT_TIMEVALUE指定的某个时间以后被编辑过,则使用CURL_TIMECOND_IFMODSINCE返回页面,如果没有被修改过,并且CURLOPT_HEADER为true,则返回一个"304 Not Modified"的header,CURLOPT_HEADER为false,则使用CURL_TIMECOND_ISUNMODSINCE,默认值为CURL_TIMECOND_IFMODSINCE
CURLOPT_TIMEOUT:设置curl允许执行的最长秒数
CURLOPT_TIMEVALUE:设置一个CURLOPT_TIMECONDITION使用的时间戳,在默认状态下使用的是CURL_TIMECOND_IFMODSINCE
CURLOPT_CAINFO: ピアを検証するための 1 つ以上の証明書を保持するファイルの名前。
CURLOPT_CAPATH: オプション CURLOPT_SSL_VERIFYPEER と組み合わせて使用する場合にのみ意味を持ちます。 HTTP リクエストの「Set-Cookie:」部分の内容を確認します。
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_EGBSOCKET: エントロピー収集デーモン ソケットへのファイル名を除き、CURLOPT_RANDOM_FILE と同様です。
CURLOPT_ENCODING : コンテンツのヘッダー :" 部分の「Accept-Encoding」。サポートされるエンコード形式は、「identity」、「deflate」、「gzip」です。空の文字列に設定すると、すべてのエンコード形式がサポートされることを意味します。
CURLOPT_FTPPORT: FTP の「POST」命令に使用する IP アドレスを取得するために使用される値。「POST」命令は、リモート サーバーに接続するように指示します。文字列は、プレーンな 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_SSLKEY: 秘密 SSL キーを含むファイルの名前。
CURLOPT_SSLKEYPASSWD: CURLOPT_SSLKEY で指定された秘密のパスワード。機密性の高いパスワードなので、含まれている PHP スクリプトを安全な場所に保管してください。
CURLOPT_SSLKEYTYPE: CURLOPT_SSLKEY で指定された秘密 SSL キーのキー タイプは、「PEM」 (デフォルト)、「DER」、および「ENG」です。
CURLOPT_URL: 取得する必要があるURLアドレスは、PHPのcurl_init()関数でも設定できます。
CURLOPT_USERAGENT: HTTP リクエスト内の「user-agent」ヘッダーを含む文字列。
CURLOPT_USERPWD: 接続に必要なユーザー名とパスワードを「[ユーザー名]:[パスワード]」の形式で渡します。
CURLOPT_HTTP200ALIASES: エラー形式の HTTP 200 応答を処理しないように設定します。形式は配列です。
CURLOPT_HTTPHEADER: ヘッダーに送信内容の配列を設定します。
CURLOPT_POSTQUOTE: FTP リクエストの実行後にサーバー上で実行される FTP コマンドの配列
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 つ目は、書き込まれたデータです。データの書き込みはこの関数に依存する必要があります。書き込まれたデータの正確なサイズを返します


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

コードをコピーしますコードは次のとおりです:
$ch =curl_init("http://qzone.myqq.us/");
$another =curl_copy_handle($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() 関数は、バッチ ハンドル リソースを閉じるために使用されます。
PHPコード



コードをコピー
コードは次のとおりです: $ch1 =curl_init();
curl_setopt($ch1, CURLOPT_URL, " :// blog.huangchao.org/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://test.huangchao.org/");
curl_setopt($ch2 , CURLOPT_HEADER, 0);
curl_multi_add_handle($mh,$ch2);
curl_multi_exec($mh,$flag); ($flag > 0);
curl_multi_remove_handle($mh,$ch2);


curl_multi_getcontent() の関数は、CURLOPT_RETURTRANSFER が設定されている場合に取得した出力テキスト ストリームを返すことです。
curl_multi_info_read() 関数は、現在解析されているcurlの関連する送信情報を取得するために使用されます。
curl_multi_select():cURL 拡張機能に関連付けられたすべてのソケットを取得し、「選択」できます

www.bkjia.com true http://www.bkjia.com/PHPjc/321298.html 技術記事 まず単純なページ キャプチャ関数を作成し、次のようにコードをコピーします。 ?php function GetSources($Url,$User_Agent='',$Referer_Url='') //指定されたページをキャッチします{ //$Url をキャプチャする必要があります 取得...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!