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 サイトの他の関連記事を参照してください。