ホームページ > バックエンド開発 > PHPチュートリアル > PHP開発h5ソースコードcurl使用例

PHP開発h5ソースコードcurl使用例

小云云
リリース: 2023-03-20 22:10:01
オリジナル
1343 人が閲覧しました

PHP 開発 h5 チェスとカードのソース コード、curl の使用法 (aqiulian.com)、PHPcurl の使用に関するその他の相談 Q: 212303635。 curl は、URL 構文を使用するファイル転送ツールで、FTP、FTPS、HTTP HTTPS SCP SFTP TFTP TELNET DICT FILE および LDAP をサポートします。 curl は、SSL 証明書、HTTP POST、HTTP PUT、FTP アップロード、Kerberos、HTTP ベースのアップロード、プロキシ、Cookie、ユーザー + パスワード認証、ファイル転送リカバリ、http プロキシ チャネル、およびその他の便利なトリックのホストをサポートしています。詳細については、リファレンスマニュアルを参照してください

PHP はデフォルトではこの関数を拡張していないことがわかりましたが、まだ利用可能ですが、有効になっていません。 PHP インストール ディレクトリを開き、次の 3 つのファイル ssleay32.dll、libeay32.dll、php_curl.dll を検索し、それらを 1 つずつシステム ディレクトリの system32 フォルダーにコピーし、php.ini ファイルを変更して次の行を見つけます。 extension= php_curl.dll。先頭の ; 記号を削除して保存し、サーバーを再起動します。サイト ディレクトリに次の内容の PHP ファイルを作成します。

$ch = curl_init(“http://www.php.net”);
curl_exec($ch);
curl_close($ch);
ログイン後にコピー

プレビュー http://www.php.net を開ければ、インストールは成功です。

Linux と Unix のインストールに関しては、少し面倒かもしれません。http://curl.haxx.se/ または他の Web サイトから、curl ライブラリをダウンロードする必要があります。

この関数には次のパラメータがあります。 :

boolcurl_setopt (int ch、文字列オプション、混合値)curl_setopt() 関数は、CURL セッションのオプションを設定します。 option パラメーターは必要な設定であり、value はこのオプションで指定される値です。

次のオプションの値は、long 整数 (オプション パラメーターで指定) として使用されます:


* CURLOPT_INFILESIZE: ファイルをリモート サイトにアップロードするとき、このオプションは PHP にファイルのサイズを伝えます。アップロードされました。

* CURLOPT_VERBOSE: CURL がすべての予期しないイベントを報告するようにするには、このオプションをゼロ以外の値に設定します。

* CURLOPT_HEADER: 出力にヘッダーを含めたい場合は、このオプションをゼロ以外の値に設定します。
* CURLOPT_NOPROGRESS: PHP に CURL 転送の進行状況バーを表示させたくない場合は、このオプションをゼロ以外の値に設定します。注: PHP はこのオプションをゼロ以外の値に自動的に設定します。このオプションはデバッグ目的でのみ変更してください。
* CURLOPT_NOBODY: 出力に本文部分を含めたくない場合は、このオプションをゼロ以外の値に設定します。
* CURLOPT_FAILONERROR: エラーが発生したときに PHP を表示しないようにする場合 (HTTP コードが 300 以上を返す場合)、このオプションをゼロ以外の値に設定します。デフォルトの動作では、通常のページが返され、コードは無視されます。
* CURLOPT_UPLOAD: PHP にアップロードの準備をさせたい場合は、このオプションをゼロ以外の値に設定します。
* CURLOPT_POST: PHP に通常の HTTP POST を実行させたい場合は、このオプションをゼロ以外の値に設定します。この POST は通常の application/x-www-from-urlencoded タイプで、主に HTML フォームで使用されます。
* CURLOPT_FTPLISTONLY: このオプションをゼロ以外の値に設定すると、PHP は FTP のディレクトリ名をリストします。
* CURLOPT_FTPAPPEND: このオプションをゼロ以外の値に設定すると、PHP はリモート ファイルを上書きする代わりに適用します。
* CURLOPT_NETRC: このオプションをゼロ以外の値に設定すると、PHP は ~./netrc ファイル内で接続先のリモート サイトのユーザー名とパスワードを検索します。
* CURLOPT_FOLLOWLOCATION: このオプションをゼロ以外のヘッダー (「Location: " など) に設定すると、サーバーはそれを HTTP ヘッダーの一部として送信します (これは再帰的であることに注意してください。PHP は「Location: "」のようなヘッダーを送信します) 。
* CURLOPT_PUT: HTTP を使用してファイルをアップロードするには、このオプションをゼロ以外の値に設定します。このファイルをアップロードするには、CURLOPT_INFILE および CURLOPT_INFILESIZE オプションを設定する必要があります。
* CURLOPT_MUTE: このオプションをゼロ以外の値に設定すると、PHP は CURL 関数に対して完全にサイレントになります。
* CURLOPT_TIMEOUT: 最大秒数として長整数を設定します。
* CURLOPT_LOW_SPEED_LIMIT: 送信されるバイト数を制御する長整数を設定します。
* CURLOPT_LOW_SPEED_TIME: CURLOPT_LOW_SPEED_LIMIT で指定されたバイト数を送信する秒数を制御する長整数を設定します。
* CURLOPT_RESUME_FROM: バイト オフセット アドレス (転送先の開始フォーム) を含む長いパラメーターを渡します。
* CURLOPT_SSLVERSION: SSL バージョンを含む長いパラメーターを渡します。デフォルトでは、PHP は独自のハードワークを実行しますが、セキュリティを強化するには手動で設定する必要があります。
* CURLOPT_TIMECONDITION: 長いパラメーターを渡して、CURLOPT_TIMEVALUE パラメーターの処理方法を指定します。このパラメータは TIMECOND_IFMODSINCE または TIMECOND_ISUNMODSINCE に設定できます。これは HTTP のみに適用されます。
* CURLOPT_TIMEVALUE: 1970 年 1 月 1 日から現在までの秒数を渡します。この時間は、CURLOPT_TIMEVALUE オプション、またはデフォルトの TIMECOND_IFMODSINCE によって指定された値として使用されます。

次のオプションの値は文字列として扱われます:

* CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
* CURLOPT_USERPWD: 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
* CURLOPT_PROXYUSERPWD: 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
* CURLOPT_RANGE: 传递一个你想指定的范围。它应该是”X-Y”格式,X或Y是被除外的。HTTP传送同样支持几个间隔,用逗句来分隔(X-Y,N-M)。
* CURLOPT_POSTFIELDS: 传递一个作为HTTP “POST”操作的所有数据的字符串。
* CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。
* CURLOPT_USERAGENT: 在HTTP请求中包含一个”user-agent”头的字符串。
* CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址,一个主机名,一个网络界面名(在UNIX下),或是‘-’(使用系统默认IP地址)。
* CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接。
* CURLOPT_SSLCERT: 传递一个包含PEM格式证书的字符串。
* CURLOPT_SSLCERTPASSWD: 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
* CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
* CURLOPT_CUSTOMREQUEST: 当进行HTTP请求时,传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的,更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得): 
* CURLOPT_FILE: 这个文件将是你放置传送的输出文件,默认是STDOUT.
* CURLOPT_INFILE: 这个文件是你传送过来的输入文件。
* CURLOPT_WRITEHEADER: 这个文件写有你输出的头部分。
* CURLOPT_STDERR: 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了.

摘几个从别的网站扣过来的例子:

例一:

$cookie_jar = tempnam(‘./tmp’,'cookie’);
$ch = curl_init(); curl_setopt($ch,CURLOPT_URL, ‘http://******’);
curl_setopt($ch, CURLOPT_POST, 1);
$request = ‘email_address=&password=&action=’;
curl_setopt($ch, CURLOPT_POSTFIELDS, $request); //把返回来的cookie信息保存在$cookie_jar文件中
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); //设定返回的数据是否自动显示
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //设定是否显示头信息
curl_setopt($ch, CURLOPT_HEADER, false); //设定是否输出页面内容
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_exec($ch);
curl_close($ch); //get data after login
ログイン後にコピー

例二:

$ch2 = curl_init();curl_setopt($ch2, CURLOPT_URL, ‘ 
curl_setopt($ch2, CURLOPT_HEADER, false);curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_COOKIEFILE, $cookie_jar);$orders = curl_exec($ch2);echo ”;
echo strip_tags($orders);echo ”;curl_close($ch2); 实践证明很稳定:)
ログイン後にコピー

例三:

set_time_limit(0);
function _rand() {
$length=26;
$chars = “0123456789abcdefghijklmnopqrstuvwxyz”;
$max = strlen($chars) – 1;
mt_srand((double)microtime() * 1000000);
$string = ”;
for($i = 0; $i < $length; $i++) {
$string .= $chars[mt_rand(0, $max)];
}
return $string;
}
$HTTP_SESSION=_rand();
echo $HTTP_SESSION;
$HTTP_Server="www.baidu.com";
$HTTP_URL="/";
$ch = curl_init();
curl_setopt ($ch,CURLOPT_URL,"http://".$HTTP_Server.$HTTP_URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
//curl_setopt($ch,CURLOPT_COOKIE,$HTTP_SESSION);
$res = curl_exec($ch);
curl_close ($ch);
print_r($res);
ログイン後にコピー

刷论坛代码:
1、抓cookies程序:

$URL="http://www.yoururl.com/bbs/login.asp?action=chk";//填入论坛的登陆页面地址$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_REFERER,"http://www.hxfoods.com/bbs/login.asp");//设置,访问页面的来源地址
curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,&#39;username=→→敢死队→&password=168168&#39;);
//分析登陆页面,把用户名,密码分别对应起来curl_setopt ($ch, CURLOPT_HEADER,true);
//使能显示http头,curl_exec($ch);if (curl_errno($ch)){print curl_error($ch);}else{curl_close($ch);}
ログイン後にコピー

2、刷楼了:

set_time_limit(0);//设置程序执行时间无限制$i=10000;//耍10000次for($j=0;$j<$i;$j++){
$URL="http://www.yoururl.com/bbs/savepost.asp";//这个地址是回复表单里面action的url地址$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_REFERER," 
//设置来源地址,如果不设置,论坛服务器有可能有验证不允许回复curl_setopt($ch,CURLOPT_COOKIESESSION,true);
//能保存cookiecurl_setopt
($ch,CURLOPT_COOKIE,"DvForum=userid=24122&usercookies=0&userhidden=2&password=w0reu3g775VrY745&userclass=%96%7C&username=%A1%FA%A1
%FA%B8%D2%CB%C0%B6%D3%A1%FA&StatUserID=2194783945 ");//这儿就是设置cookie了curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_NOBODY,1);
//不显示内容,因为有很多论坛回复后要自动跳转。curl_setopt($ch,CURLOPT_POSTFIELDS,&#39;Body=gfdfgdfgasdfgdfgdfgdfg& followup=672709&RootID=1274
37&star=58&TotalUseTable=Dv_bbs3& amp;UserName=→→敢死队→&signflag=1&total=65535&#39;);//把你分析的回复表单的参数分别赋值curl_setopt ($ch, CURLOPT_
HEADER,true);curl_exec($ch);if (curl_errno($ch)){print curl_error($ch);}else{curl_close($ch);}
}
ログイン後にコピー

curl_close — 关闭一个curl会话
curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
curl_errno — 返回一个包含当前会话错误信息的数字编号
curl_error — 返回一个包含当前会话错误信息的字符串
curl_exec — 执行一个curl会话
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close — 关闭一个批处理句柄资源
curl_multi_exec — 解析一个curl批处理句柄
curl_multi_getcontent — 返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 初始化一个curl批处理句柄资源
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的形式为一个curl设置会话参数
curl_setopt — 为一个curl设置会话参数
curl_version — 获取curl相关的版本信息

curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

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

curl_version()函数的作用是获取curl相关的版本信息,curl_version()函数有一个参数,不清楚是做什么的

print_r(curl_version())

curl_getinfo()函数的作用是获取一个curl连接资源句柄的信息,curl_getinfo()函数有两个参数,第一个参数是curl的资源句柄,第二个参数是下面一些常量:

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

可选的常量包括:

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
アップロードデータサイズの合計値

CURLINFO_SIZE_DOWNLOAD
ダウンロードデータサイズの合計値

CURLINFO_SPEED_DOWNLO AD
平均ダウンロード速度

CURLINFO_SPEED_UPLOAD
平均アップロード速度

CURLINFO_HEADER_SIZE
ヘッダーセクションのサイズ

CURLINFO_HEADER_OUT
要求された文字列の送信

CURLINFO_REQUEST_SIZE
HTTPリクエスト内の問題のあるリクエストのサイズ

CURLINFO_SSL_VERIFYRESULT
CURLOP設定により要求されたSSL証明書検証の結果T_SSL_VERIFYPEER

CURLINFO_CONTENT_LENGTH_DOWNLOAD
読み取られたダウンロード コンテンツの長さContent-Length: フィールド

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

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

curl_setopt( ) 関数は、curl のセッション パラメーターを設定するために使用されます。 curl_setopt_array() 関数は、curl のセッション パラメータを配列形式で設定するために使用されます。 ' http://www.baidu.com/',

CURLOPT_HEADER => false

);
curl_setopt_array($ch, $options);
curl_exec($ch);
curl_close($ch);
fclose($ fp );

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

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

CURLOPT_BINARYTRANSFER

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

CURLOPT_COOKIESESSION
有効にすると、curl は次のようになります。 1 つのセッション Cookie のみを渡し、他の 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
TRUE を使用すると、アクティブな FTP ダウンロードを実行するときに EPRT (および LPRT) を使用できます。EPRT と LPRT を無効にし、PORT のみを使用するには、FALSE を使用します。

PHP 5.0.0 で追加されました。


CURLOPT_FTP_USE_EPSV

TRUE を使用すると、最初に EPSV コマンドを試行しますPASV に戻る前に FALSE に設定します。


CURLOPT_FTPAPPEND
TRUE を上書きせずにリモート ファイルに追加します。

CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT のエイリアスを代わりに使用します。

本当ですFTP ディレクトリの名前のみをリストします。


CURLOPT_HEADER

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


CURLOPT_HTTPGET

有効にすると、HTTP メソッドは GET に設定されるため、GET は変更された場合にのみ使用されます。


CURLOPT_HTTPPROXYTUNNEL

有効にすると、HTTP プロキシ経由で送信されます。


CURLOPT_MUTE

curl 関数内で変更されたすべてのパラメーターをデフォルト値に戻します。


CURLOPT_NETRC

接続が確立されたら、~/.netrc ファイルにアクセスして、リモート サイトに接続するためのユーザー名とパスワード情報を取得します。


CURLOPT_NOBODY

有効にすると、HTMLの本文部分が出力されなくなります。


CURLOPT_NOPROGRESS

有効な場合、curl 送信の進行状況バーをオフにします。この項目のデフォルト設定は true です


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
FALSE: cURL によるピアの証明書の検証を停止するには、CURLOPT_CAINFO オプションを使用して検証する代替証明書を指定するか、CURLOPT_SSL_VERIFYPEER が無効になっている場合は CURLOPT_SSL_VERIFYHOST を TRUE または FALSE に指定する必要があります。 (デフォルトは 2)。cURL 7.10 以降、デフォルトのバンドルがインストールされます。

CURLOPT_TRANSFERTEXT
TRUE では、FTP 転送に HTML ではなくプレーン テキストでデータが取得されます。 Windows システムでは、ドメイン名が変更された場合でも、

CURLOPT_UNRESTRICTED_AUTH
CURLOPT_FOLLOWLOCATION を使用して生成されたヘッダー内の複数の場所にユーザー名とパスワードの情報が継続的に追加されません。

CURLOPT_UPLOAD
有効にするとファイル転送を許可します

CURLOPT_VERBOSE
有効にすると、すべての情報が報告され、STDERRまたは指定されたCURLOPT_STDERRに保存されます

CURLOPT_BUFFERSIZE
毎回取得されるデータに読み込まれるキャッシュのサイズ、この値は毎回読んで満たされます。

CURLOPT_CLOSEPOLICY
他に 3 つありますが、CURLCLOSEPOLICY_LEAST_RECENTLY_USED または CURLCLOSEPOLICY_OLDEST のいずれかですが、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_VER を設定します。なし(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、 _A NY、CURLAUTH_ANYSAFE "| " 演算子を使用して複数の値を区切ります。curl は、CURLAUTH_BASIC に相当します。CURLAUTH_GSSNEGOTIATE | CURLAUTH_ANYSAFE は、CURLAUTH_DIGEST に相当します。

CURLOPT _INFILESIZE

セットアップロードされたファイルのサイズ

CURLOPT_LOW_SPEED_LIMIT

送信速度が CURLOPT_LOW_SPEED_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

このオプションは、CURLOPT_FOLLOWLOCATION と一緒に使用されます。

CURLOPT_PORT

接続ポートを指定するために使用されるオプションの数量

CURLOPT_PROXYAUTH

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

CURLOPT_PROXYPORT

接続するプロキシのポート番号
転送を再開するときに a を渡します。バイト オフセット (再開された転送に使用されます)

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_ISUNMODSINCE を使用します。デフォルト値は CURL_TIMECOND_IFMODSINCE です

CURLOPT_TIMEOUT
cur l の実行が許可される最大秒数を設定します

CURLOPT_TIMEVALUE
CURL_TIMECONDITION で使用されるタイムスタンプを設定します。 D_IFMODSINCE が使用されます

CURLOPT_CAINFO
ピアを検証するための 1 つ以上の証明書を保持するファイルの名前。これは、CURLOPT_SSL_VERIFYPEER.

CURLOPT_CAPATH
A ディレクトリと組み合わせて使用​​する場合にのみ意味を持ちます。このオプションは、CURLOPT_SSL_VERIFYPEER.

CURLOPT_COOKIE
Set と組み合わせて使用​​します。 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_EGBSOCKET
エントロピー収集デーモン ソケットへのファイル名を除き、CURLOPT_RANDOM_FILE と同様です。

CURLOPT_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
を設定します。「[username] の形式のユーザー名とパスワードを使用します」 :[パスワード]"。

CURLOPT_RANDOM_FILE
SSLで使用する乱数シードを格納するファイル名を設定します

CURLOPT_RANGE
HTTP送信範囲を設定します HTTP送信が複数ある場合、送信範囲を「X-Y」の形式で設定できます。 「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 で指定された秘密 SSL キーの暗号化エンジンの識別子。 CURLOPT_SSLENGINE_DEFAULT

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


CURLOPT_SSLKEY

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


CURLOPT_SSLKEYPASSWD

CURLOPT_SSLKEY で指定された秘密 SSL キーを使用するために必要な秘密のパスワード。

注:このオプションには機密性の高いパスワードが含まれているため、含まれている 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();
$ch2 =curl_init();

curl_setopt($ch1, CURLOPT_URL, “http://www.baidu.com/”);
curl_setopt($ch1, CURLOPT_HEADER, 0) ;
curl_setopt($ch2, CURLOPT_URL, “http://www.google.com/”);
curl_setopt($ch2, CURLOPT_HEADER, 0);

$mh =curl_multi_init();

curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh,$ch2);

do {
curl_multi_exec($mh,$flag);
} while ($flag > 0);

curl_multi_remove_handle($mh,$ch1);
curl_multi_remove_handle($mh,$ch2);
curl_multi_close($mh);

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

curl_multi_info_read() 関数は、現在解析されているcurlの関連する送信情報を取得するために使用されます。

curl_multi_select()
cURL 拡張機能に関連付けられたすべてのソケットを取得し、「選択」することができます

ソース URL:http://www.hebaodans.com/2009/07/p-h-p-c-u-r-l-yong-fa/

関連する推奨事項:

PHPでCURLを使用する方法

phpデータクローリングcurlの例の詳細な説明

CURLを使用したPHPの詳細な説明

以上がPHP開発h5ソースコードcurl使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート