Mendapatkan Kedua-dua Pengepala dan Badan dalam Permintaan cURL PHP
Apabila membuat permintaan cURL menggunakan PHP, mendapatkan kedua-dua pengepala respons dan badan boleh menjadi cabaran. Pilihan CURLOPT_HEADER, sambil mengembalikan badan bersama-sama dengan pengepala, memerlukan penghuraian manual untuk mengekstrak badan. Untuk penyelesaian yang lebih cekap dan selamat, pertimbangkan pendekatan berikut:
Penyelesaian:
Seperti yang dicadangkan oleh dokumentasi PHP, menggunakan gabungan CURLOPT_RETURNTRANSFER dan mendapatkan semula saiz pengepala daripada CURLINFO_HEADER_SIZE membenarkan pengasingan pengepala dan body:
// Initialize cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); // Execute the request $response = curl_exec($ch); // Extract header size $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); // Separate headers and body $header = substr($response, 0, $header_size); $body = substr($response, $header_size);
Awas:
Walaupun penyelesaian ini umumnya boleh dipercayai, penyelesaian ini mungkin tidak berfungsi secara konsisten apabila menggunakan pelayan proksi atau mengendalikan jenis ubah hala tertentu. Dalam kes sedemikian, pendekatan alternatif, seperti yang dinyatakan dalam soalan asal, mungkin memberikan hasil yang lebih dipercayai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengasingkan Pengepala dan Badan dengan Cekap dalam Permintaan cURL PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!