Mendapatkan semula Kuki daripada PHP Curl Response ke dalam Pembolehubah
Dalam senario tertentu, respons API luaran mungkin dibenamkan secara tidak jelas sebagai kuki dalam pengepala HTTP , bukannya menggunakan protokol komunikasi konvensional seperti SOAP atau REST. Untuk memudahkan pengekstrakan kuki ini ke dalam tatasusunan berstruktur tanpa menggunakan penghuraian yang susah payah, teknik berikut boleh digunakan.
Menggunakan sambungan PHP Curl, anda boleh mendapatkan semula respons HTTP, termasuk kuki, menggunakan yang berikut kod:
$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);
Untuk mengekstrak kuki daripada respons, ungkapan biasa boleh bekerja:
// Extract cookies using regular expressions preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);
Tatasusunan $matches akan mengandungi semua kuki yang terdapat dalam respons. Untuk menukar ini kepada format yang lebih berguna, setiap rentetan kuki boleh dihuraikan ke dalam tatasusunan menggunakan parse_str:
$cookies = array(); foreach($matches[1] as $item) { parse_str($item, $cookie); $cookies = array_merge($cookies, $cookie); }
Akhir sekali, anda boleh mengakses kuki dalam tatasusunan $cookies. Pendekatan ini berkesan mengekstrak kuki daripada tindak balas curl tanpa memerlukan penghuraian kompleks atau operasi berasaskan fail.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Kuki daripada Respons Curl PHP ke dalam Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!