ホームページ  >  記事  >  バックエンド開発  >  PHP CURLのcurl_setoptパラメータ

PHP CURLのcurl_setoptパラメータ

WBOY
WBOYオリジナル
2016-08-08 09:24:271002ブラウズ

PHP CURLcurl_setopt パラメータ

bool curl_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: [ユーザー名]:[パスワード] の形式で文字列を渡し、PHP を使用して接続します。
? CURLOPT_PROXYUSERPWD: [ユーザー名]:[パスワード] の形式で文字列を渡して、HTTP プロキシに接続します。
? CURLOPT_RANGE: 指定したい範囲を渡します。 X または Y を除いた「X-Y」形式である必要があります。 HTTP 転送では、カンマ (X-Y、N-M) で区切られた複数の間隔もサポートされます。
? CURLOPT_POSTFIELDS: すべてのデータを含む文字列を HTTP "POST" 操作として渡します。
? CURLOPT_REFERER: HTTP リクエスト内の「リファラー」ヘッダーを含む文字列。
? CURLOPT_USERAGENT: HTTP リクエスト内の「user-agent」ヘッダーを含む文字列。
? CURLOPT_FTPPORT: ftp の「POST」コマンドで使用される IP アドレスを含む 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 で使用される文字を渡します。 HTTP リクエストを実行するときに GET または HEAD の代わりに使用される文字列を渡します。これは、HTTP リクエストを実行する場合や、よりわかりにくい別の HTTP リクエストを実行する場合に便利です。次のオプションには、ファイルの説明が必要です (fopen() 関数を使用して取得します):
? CURLOPT_FILE: このファイルは、配置して送信する出力ファイルになります。
? CURLOPT_INFILE: このファイルは、入力ファイルになります。あなたは送信します。
? CURLOPT_WRITEHEADER: このファイルには出力のヘッダー部分が含まれます。
? CURLOPT_STDERR : このファイルには標準エラー出力の代わりにエラーが書き込まれています。ログインが必要なページを取得するために使用される例。現在の方法は、毎回ログインすることです。

例 1:

<span>$cookie_jar</span> = <span>tempnam</span>('./tmp','cookie'<span>); </span><span>$ch</span> = curl_init(); curl_setopt(<span>$ch</span>,CURLOPT_URL, 'http://******'<span>); curl_setopt(</span><span>$ch</span>, CURLOPT_POST, 1<span>); </span><span>$request</span> = 'email_address=&password=&action='<span>; curl_setopt(</span><span>$ch</span>, CURLOPT_POSTFIELDS, <span>$request</span>); <span>//</span><span>把返回来的cookie信息保存在$cookie_jar文件中</span> curl_setopt(<span>$ch</span>, CURLOPT_COOKIEJAR, <span>$cookie_jar</span>); <span>//</span><span>设定返回的数据是否自动显示</span> curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, 1); <span>//</span><span>设定是否显示头信息</span> curl_setopt(<span>$ch</span>, CURLOPT_HEADER, <span>false</span>); <span>//</span><span>设定是否输出页面内容</span> curl_setopt(<span>$ch</span>, CURLOPT_NOBODY, <span>false</span><span>); curl_exec(</span><span>$ch</span><span>); curl_close(</span><span>$ch</span>); <span>//</span><span>get data after login</span></precourier></p> <p><span><img src="http://image.codes51.com/Article/image/20150512/20150512174030_8511.jpg" alt=""> : </span></p> <p></p> <divcourier new><p><precourier new><span>$ch2</span> =<span> curl_init(); curl_setopt(</span><span>$ch2</span>, CURLOPT_URL, 'http://*****'<span>); curl_setopt(</span><span>$ch2</span>, CURLOPT_HEADER, <span>false</span><span>); curl_setopt(</span><span>$ch2</span>, CURLOPT_RETURNTRANSFER, 1<span>); curl_setopt(</span><span>$ch2</span>, CURLOPT_COOKIEFILE, <span>$cookie_jar</span><span>); </span><span>$orders</span> = curl_exec(<span>$ch2</span><span>); </span><span>echo</span> ''<span>; </span><span>echo</span><span>strip_tags</span>(<span>$orders</span><span>); </span><span>echo</span> ''<span>; curl_close(</span><span>$ch2</span>); 实践证明很稳定:)<span><img src="http://image.codes51.com/Article/image/20150512/20150512174030_8667.jpg" alt=""></span></precourier></p> <p><span><img src="http://image.codes51.com/Article/image/20150512/20150512174030_8667.jpg" alt="">例 3: </span></p> <p></p> <divcourier new><p><precourier new><span>set_time_limit</span>(0<span>); </span><span>function</span><span> _rand() { </span><span>$length</span>=26<span>; </span><span>$chars</span> = "0123456789abcdefghijklmnopqrstuvwxyz"<span>; </span><span>$max</span> = <span>strlen</span>(<span>$chars</span>) - 1<span>; </span><span>mt_srand</span>((<span>double</span>)<span>microtime</span>() * 1000000<span>); </span><span>$string</span> = ''<span>; </span><span>for</span>(<span>$i</span> = 0; <span>$i</span> < <span>$length</span>; <span>$i</span>&#43;&#43;<span>) { </span><span>$string</span> .= <span>$chars</span>[<span>mt_rand</span>(0, <span>$max</span><span>)]; } </span><span>return</span><span>$string</span><span>; } </span><span>$HTTP_SESSION</span>=<span>_rand(); </span><span>echo</span><span>$HTTP_SESSION</span><span>; </span><span>$HTTP_Server</span>="www.baidu.com"<span>; </span><span>$HTTP_URL</span>="/"<span>; </span><span>$ch</span> =<span> curl_init(); curl_setopt (</span><span>$ch</span>,CURLOPT_URL,"http://".<span>$HTTP_Server</span>.<span>$HTTP_URL</span><span>); curl_setopt(</span><span>$ch</span>,CURLOPT_RETURNTRANSFER,<span>true</span><span>); curl_setopt(</span><span>$ch</span>,CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"<span>); </span><span>//</span><span>curl_setopt($ch,CURLOPT_COOKIE,$HTTP_SESSION);</span><span>$res</span> = curl_exec(<span>$ch</span><span>); curl_close (</span><span>$ch</span><span>); </span><span>print_r</span>(<span>$res</span>);

Flash フォーラム コード:

1. Cookie 取得プログラム:



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

2. 床を掃除する:

<span>set_time_limit</span>(0<span>); </span><span>//</span><span>设置程序执行时间无限制</span><span>$i</span>=10000<span>; </span><span>//</span><span>耍10000次</span><span>for</span>(<span>$j</span>=0;<span>$j</span><<span>$i</span>;<span>$j</span>&#43;&#43;<span>) { </span><span>$URL</span>="http://www.yoururl.com/bbs/savepost.asp"<span>; </span><span>//</span><span>这个地址是回复表单里面action的url地址</span><span>$ch</span> =<span> curl_init(); curl_setopt(</span><span>$ch</span>,CURLOPT_URL,<span>$URL</span><span>); curl_setopt(</span><span>$ch</span>,CURLOPT_REFERER,"http://www.hxfoods.com/bbs/dispbbs.asp?boardid=14&replyid=672709&id=127437&page=1&skin=0&Star=53"<span>); </span><span>//</span><span>设置来源地址,如果不设置,论坛服务器有可能有验证不允许回复</span> curl_setopt(<span>$ch</span>,CURLOPT_COOKIESESSION,<span>true</span><span>); </span><span>//</span><span>能保存cookie</span> curl_setopt(<span>$ch</span>,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 "<span>); </span><span>//</span><span>这儿就是设置cookie了</span> curl_setopt(<span>$ch</span>,CURLOPT_POST,1<span>); curl_setopt(</span><span>$ch</span>,CURLOPT_NOBODY,1<span>); </span><span>//</span><span>不显示内容,因为有很多论坛回复后要自动跳转。</span> curl_setopt(<span>$ch</span>,CURLOPT_POSTFIELDS,'Body=gfdfgdfgasdfgdfgdfgdfg& followup=672709&RootID=127437&star=58&TotalUseTable=Dv_bbs3& amp;UserName=→→敢死队→&signflag=1&total=65535'<span>); </span><span>//</span><span>把你分析的回复表单的参数分别赋&#20540;</span> curl_setopt (<span>$ch</span>, CURLOPT_HEADER,<span>true</span><span>); curl_exec(</span><span>$ch</span><span>); </span><span>if</span> (curl_errno(<span>$ch</span><span>)) { </span><span>print</span> curl_error(<span>$ch</span><span>); } </span><span>else</span><span> { curl_close(</span><span>$ch</span><span>); } }</span>

CURL関連機能

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()函数返回的句柄。

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

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

<span>print_r</span>(curl_version())


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

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

可选的常量包括:
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_DOWNLOAD
平均下载速度
CURLINFO_SPEED_UPLOAD
平均上传速度
CURLINFO_HEADER_SIZE
header部分的大小
CURLINFO_HEADER_OUT
发送请求的字符串
CURLINFO_REQUEST_SIZE
在HTTP请求中有问题的请求的大小
CURLINFO_SSL_VERIFYRESULT
Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD
从Content-Length: field中读取的下载内容长度
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"); curl_setopt($ch, CURLOPT_FILE, $fp); $options = array( CURLOPT_URL => '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のみが渡されますセッションクッキーと他の 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 を使用すると、最初に FTP 転送に EPSV コマンドを試行できます。 PASV に戻す前に、EPSV を無効にするには FALSE に設定します。
CURLOPT_FTPAPPEND
TRUE を上書きせずにリモート ファイルに追加します。
CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT の別名を代わりに使用します。
CURLOPT_FTPLISTONLY
TRUE の名前のみをリストします。 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_CAPATH オプションで指定することも必要です。 CURLOPT_SSL_VERIFYPEER が無効な場合は TRUE または FALSE (デフォルトは 2)。cURL 7.10 以降にインストールされたデフォルトのバンドル。
CURLOPT_TRANSFERTEXT
TRUE で FTP 転送にプレーン テキストを使用します。 Windows システムでは、ドメイン名が変更された場合でも、
CURLOPT_UNRESTRICTED_AUTH
ユーザー名とパスワード情報が CURLOPT_FOLLOWLOCATION を使用して生成されたヘッダー内の複数の場所に継続的に追加されます。
CURLOPT_UPLOAD
有効にするとファイル転送が可能になります
CURLOPT_VERBOSE
有効にすると、すべての情報がレポートされ、STDERRまたは指定されたCURLOPT_STDERRに保存されます
CURLOPT_BUFFERSIZE
データが取得されるたびにキャッシュのサイズが読み取られ、この値が埋められます毎回 。
CURLOPT_CLOSEPOLICY
他にも 3 つありますが、CURLCLOSEPOLICY_LEAST_RECENTLY_USED または CURLCLOSEPOLICY_OLDEST はまだサポートされていません。 .
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_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、 AU TH_ANYSAFE、次を使用できます。 "|" 演算子 複数の値を区切ります。curl は、CURLAUTH_BASIC と同等、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
PHP が転送が遅すぎると判断して中止するには、転送の秒数が CURLOPT_LOW_SPEED_LIMIT を下回っている必要があります。
CURLOPT_MAXCONNECTS
許可される接続の最大数を超えた場合、CURLOPT_CLOSEPOLICY を使用して、どの接続を停止するかを決定します。
CURLOPT_MAXREDIRS
このオプションは、CURLOPT_FOLLOWLOCATION と一緒に使用されます。
CURLOPT_PORT
接続ポートを指定するために使用されるオプションの量
CURLOPT_PROXYAUTH
プロキシ接続に使用する HTTP 認証方法。CURLOPT_HTTPAUTH で説明されているものと同じビットマスクを使用します。現在、CURLAUTH_BASIC と CURLAUTH_NTLM のみです。
接続するプロキシのポート番号 (ブレークポイントからダウンロードを再開するために使用されます)
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_TIMEVALUE
CURLOPT_TIMECONDITION で使用されるタイムスタンプを設定します。デフォルトでは、CURL_TIMECOND_IFMODSINCE が使用されます。
CURLOPT_CAINFO
これだけが意味を持ちます。 CURLOPT_SSL_VERIFYPEER と組み合わせて使用​​する場合。
CURLOPT_CAPATH
複数の CA 証明書を保持するディレクトリ。このオプションを CURLOPT_SSL_VERIFYPEER と組み合わせて使用​​します。
CURLOPT_COOKIE
HTTP リクエストの「Set-Cookie:」部分の内容を設定します。
CURLOPT_COOKIEFILE
Cookie 情報を含むファイルの名前は、Netscape 形式または HTTP 形式のヘッダー情報です。
CURLOPT_COOKIEJAR
接続が閉じられた後にCookie情報を保存するファイルの名前
CURLOPT_CUSTOMREQUEST
HTTPリクエストを実行するときに「GET」または「HEAD」の代わりに使用するカスタムリクエストメソッド。これは「DELETE」または「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
The value which will be used to get the IP address to use for the FTP "POST" instruction. The "POST" instruction tells the remote server to connect to our specified IP address. The string may be a plain IP address, a hostname, a network interface name (under Unix), or just a plain '-' to use the systems default IP address.
CURLOPT_INTERFACE
在外部网络接口中使用的名称,可以是一个接口名,IP或者主机名。
CURLOPT_KRB4LEVEL
KRB4(Kerberos 4)安全级别的设置,可以是一下几个值之一:"clear","safe","confidential","private"。默认的值 为"private",设置为null的时候表示禁用KRB4,现在KRB4安全仅能在FTP传输中使用。
CURLOPT_POSTFIELDS
在HTTP中的“POST”操作。如果要传送一个文件,需要一个@开头的文件名
CURLOPT_PROXY
设置通过的HTTP代理服务器
CURLOPT_PROXYUSERPWD
连接到代理服务器的,格式为“[username]:[password]”的用户名和密码。
CURLOPT_RANDOM_FILE
设定存放SSL用到的随机数种子的文件名称
CURLOPT_RANGE
设置HTTP传输范围,可以用“X-Y”的形式设置一个传输区间,如果有多个HTTP传输,则使用逗号分隔多个值,形如:"X-Y,N-M"。
CURLOPT_REFERER
设置header中"Referer: " 部分的值。
CURLOPT_SSL_CIPHER_LIST
A list of ciphers to use for SSL. For example, RC4-SHA and TLSv1 are valid cipher lists.
CURLOPT_SSLCERT
传递一个包含PEM格式证书的字符串。
CURLOPT_SSLCERTPASSWD
传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
CURLOPT_SSLCERTTYPE
The format of the certificate. Supported formats are "PEM" (default), "DER", and "ENG".
CURLOPT_SSLENGINE
The identifier for the crypto engine of the private SSL key specified in CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT
The identifier for the crypto engine used for asymmetric crypto operations.
CURLOPT_SSLKEY
The name of a file containing a private SSL key.
CURLOPT_SSLKEYPASSWD
The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY.
Note: Since this option contains a sensitive password, remember to keep the PHP script it is contained within safe.
CURLOPT_SSLKEYTYPE
The key type of the private SSL key specified in CURLOPT_SSLKEY. Supported key types are "PEM" (default), "DER", and "ENG".
CURLOPT_URL
需要获取的URL地址,也可以在PHP的curl_init()函数中设置。
CURLOPT_USERAGENT
在HTTP请求中包含一个”user-agent”头的字符串。
CURLOPT_USERPWD
传递一个连接中需要的用户名和密码,格式为:“[username]:[password]”。
CURLOPT_HTTP200ALIASES
设置不再以error的形式来处理HTTP 200的响应,格式为一个数组。
CURLOPT_HTTPHEADER
设置一个header中传输内容的数组。
CURLOPT_POSTQUOTE
An array of FTP commands to execute on the server after the FTP request has been performed.
CURLOPT_QUOTE
An array of FTP commands to execute on the server prior to the FTP request.
CURLOPT_FILE
设置输出文件的位置,值是一个资源类型,默认为STDOUT (浏览器)。
CURLOPT_INFILE
在上传文件的时候需要读取的文件地址,值是一个资源类型。
CURLOPT_STDERR
设置一个错误输出地址,值是一个资源类型,取代默认的STDERR。
CURLOPT_WRITEHEADER
设置header部分内容的写入的文件地址,值是一个资源类型。
CURLOPT_HEADERFUNCTION
设置一个回调函数,这个函数有两个参数,第一个是curl的资源句柄,第二个是输出的header数据。header数据的输出必须依赖这个函数,返回已写入的数据大小。
CURLOPT_PASSWDFUNCTION
设置一个回调函数,有三个参数,第一个是curl的资源句柄,第二个是一个密码提示符,第三个参数是密码长度允许的最大值。返回密码的值。
CURLOPT_READFUNCTION
设置一个回调函数,有两个参数,第一个是curl的资源句柄,第二个是读取到的数据。数据读取必须依赖这个函数。返回读取数据的大小,比如0或者EOF。
CURLOPT_WRITEFUNCTION
设置一个回调函数,有两个参数,第一个是curl的资源句柄,第二个是写入的数据。数据写入必须依赖这个函数。返回精确的已写入数据的大小


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()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。
curl_multi_exec()函数的作用是解析一个curl批处理句柄,curl_multi_exec()函数有两个参数,第一个参数表示一个批处理句柄资源,第二个参数是一个引用值的参数,表示剩余需要处理的单个的curl句柄资源数量。
curl_multi_remove_handle()函数表示移除curl批处理句柄资源中的某个句柄资源,curl_multi_remove_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的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()
Get all the sockets associated with the cURL extension, which can then be "selected"

以上就介绍了PHP CURL curl_setopt 参数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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