この記事では、PHP が CURL を使用して COOKIEJAR に依存せずに COOKIE を取得する方法の例について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:
PHP の CURL クラスは非常に素晴らしいツール クラスです。その素晴らしさについては詳しく説明しません。
COOKIEについては、CURLクラスも非常に優れたサポートを備えていますが、柔軟性が十分ではなく、変数を使用した既製のメソッドでは取得できません。次のメソッドを介して実装する必要があります。
?
1
2
3// COOKIEをcookie.txtに保存します
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
まず COOKIE ファイルを保存し、それを呼び出すときにそのファイルを読み取る必要があることは、言うまでもなく、その効率の良さを誰もが知っています。
それでは、ファイルの書き込みと読み取りをバイパスする方法はありますか?
?1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18//CURLを初期化する
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// ヘッダー情報を取得します
curl_setopt($ch, CURLOPT_HEADER, 1);
// 生(Raw)出力に戻る
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 実行して戻り結果を取得する
$content =curl_exec($ch);
// CURLを閉じる
curl_close($ch);
// HTTP データ ストリームを解析します
list($header, $body) =explode("rnrn", $content);
// COOKIE を解析します
preg_match("/set-cookie:([^rn]*)/i", $header, $matches);
// 後でCURLで送信するときに直接使用できます
//curl_setopt($ch, CURLOPT_COOKIE, $cookie);
$cookie = $matches[1];
この記事が皆様の PHP プログラミング設計に役立つことを願っています。