ホームページ >バックエンド開発 >PHPチュートリアル >PHP Curl 応答から Cookie を抽出して変数に入れるにはどうすればよいですか?

PHP Curl 応答から Cookie を抽出して変数に入れるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 15:12:11819ブラウズ

How Can I Extract Cookies from a PHP Curl Response into a Variable?

PHP Curl 応答から変数への Cookie の取得

特定のシナリオでは、外部 API 応答が不可解にも HTTP ヘッダー内に Cookie として埋め込まれる場合があります。 、SOAP や REST などの従来の通信プロトコルを利用する代わりに。面倒な解析に頼ることなく、これらの Cookie を構造化配列に簡単に抽出するには、次の手法を使用できます。

PHP Curl 拡張機能を利用すると、次のコマンドを使用して、Cookie を含む HTTP 応答を取得できます。コード:

$ch = curl_init('http://www.google.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Retrieve headers too
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);

応答から Cookie を抽出するには、正規表現を次のように使用できます。採用:

// Extract cookies using regular expressions
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);

$matches 配列には、応答で見つかったすべての Cookie が含まれます。これをより便利な形式に変換するには、parse_str:

$cookies = array();
foreach($matches[1] as $item) {
    parse_str($item, $cookie);
    $cookies = array_merge($cookies, $cookie);
}

を使用して各 Cookie 文字列を配列に解析します。最後に、$cookies 配列内の Cookie にアクセスできます。このアプローチでは、複雑な解析やファイルベースの操作を必要とせずに、curl 応答から Cookie を効果的に抽出します。

以上がPHP Curl 応答から Cookie を抽出して変数に入れるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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