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_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,'username=→→敢死队→&password=168168'); //分析登陆页面,把用户名,密码分别对应起来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,'Body=gfdfgdfgasdfgdfgdfgdfg& followup=672709&RootID=1274 37&star=58&TotalUseTable=Dv_bbs3& amp;UserName=→→敢死队→&signflag=1&total=65535');//把你分析的回复表单的参数分别赋值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_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 を使用します。
CURLOPT_FTP_USE_EPSV
CURLOPT_FTPAPPEND
TRUE を上書きせずにリモート ファイルに追加します。
CURLOPT_FTPASCII
CURLOPT_TRANSFERTEXT のエイリアスを代わりに使用します。
CURLOPT_HEADER
CURLOPT_HTTPGET
CURLOPT_HTTPPROXYTUNNEL
CURLOPT_MUTE
CURLOPT_NETRC
CURLOPT_NOBODY
CURLOPT_NOPROGRESS
CURLOPT_NOSIGNAL
CURLOPT_POST
CURLOPT_PUT
CURLOPT_RETURNTRANSFER
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_LOW_SPEED_LIMIT 未満の場合、PHP は CURLOPT_LOW_SPEED_TIME を使用して、遅すぎるため送信をキャンセルするかどうかを決定します。
PHP が転送が遅すぎるとみなして中止するためには、転送の秒数が CURLOPT_LOW_SPEED_LIMIT を下回る必要があります。
転送速度が CURLOPT_LOW_SPEED_LIMIT 未満の場合、PHP は CURLOPT_LOW_SPEED_TIME を使用して、速すぎるため転送をキャンセルするかどうかを決定します。遅い。
許可される接続の最大数。超過した場合、CURLOPT_CLOSEPOLICY を使用して、どの接続を停止するかを決定します。
このオプションは、CURLOPT_FOLLOWLOCATION と一緒に使用されます。
接続ポートを指定するために使用されるオプションの数量
プロキシ接続に使用する HTTP 認証方法。プロキシ認証には、現在 CURLAUTH_BASIC と CURLAUTH_NTLM のみが使用されます。
接続するプロキシのポート番号
転送を再開するときに a を渡します。バイト オフセット (再開された転送に使用されます)
CURLOPT_SSL_VERIFYHOST
1 を渡して、SSL ピア証明書内の共通名の存在を確認します。
CURLOPT_SSLVERSION
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
CURLOPT_SSLKEYPASSWD
注:このオプションには機密性の高いパスワードが含まれているため、含まれている PHP スクリプトを安全な場所に保管してください。
CURLOPT_SSLKEYTYPE
CURLOPT_URL
CURLOPT_USERAGENT
CURLOPT_USERPWD
CURLOPT_HTTP200ALIASES
CURLOPT_HTTPHEADER
CURLOPT_POSTQUOTE
CURLOPT_INFILE
CURLOPT_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開発h5ソースコードcurl使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

メモ帳++7.3.1
使いやすく無料のコードエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









