Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengekstrak Kuki daripada Respons Curl PHP ke dalam Pembolehubah?

Bagaimanakah Saya Boleh Mengekstrak Kuki daripada Respons Curl PHP ke dalam Pembolehubah?

Barbara Streisand
Barbara Streisandasal
2024-12-22 15:12:11763semak imbas

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

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn