Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengeluarkan Kedua-dua Pengepala dan Badan daripada Permintaan cURL dalam PHP?

Bagaimanakah Saya Boleh Mengeluarkan Kedua-dua Pengepala dan Badan daripada Permintaan cURL dalam PHP?

DDD
DDDasal
2024-12-20 01:07:17441semak imbas

How Can I Extract Both Headers and Body from a cURL Request in PHP?

Mengekstrak Pengepala dan Badan daripada Permintaan cURL dalam PHP

Pustaka cURL PHP menyediakan cara yang mudah untuk menghantar permintaan HTTP. Secara lalai, cURL hanya mengambil badan tindak balas. Walau bagaimanapun, anda mungkin menghadapi situasi di mana anda perlu mengakses kedua-dua pengepala dan kandungan dalam satu permintaan, tanpa mengeluarkan permintaan HEAD yang berasingan.

Penyelesaian: Mengasingkan Pengepala dan Badan

Untuk mendapatkan kedua-dua pengepala dan kandungan dalam satu permintaan kusut, anda boleh menggunakan perkara berikut langkah:

  1. Laksanakan permintaan cURL dengan curl_exec() dengan pilihan berikut:

    • CURLOPT_RETURNTRANSFER: Tetapkan kepada 1 untuk mengembalikan respons sebagai rentetan.
    • CURLOPT_HEADER: Tetapkan kepada 1 untuk memasukkan pengepala respons dalam output.
  2. Selepas melaksanakan permintaan, dapatkan respons menggunakan $response.
  3. Kira saiz pengepala HTTP menggunakan curl_getinfo($ch, CURLINFO_HEADER_SIZE) dan simpannya dalam $header_size.
  4. Keluarkan pengepala daripada $response dengan mengambil subrentetan sehingga $header_size. Simpan pengepala dalam $header.
  5. Ekstrak kandungan daripada $response dengan mengambil subrentetan daripada $header_size ke hujung rentetan. Simpan badan dalam $body.

Contoh Kod:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
// ...

$response = curl_exec($ch);

$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$body = substr($response, $header_size);

Nota: Harap maklum bahawa kaedah ini mungkin tidak boleh dipercayai dalam semua kes, terutamanya apabila berurusan dengan pelayan proksi atau jenis ubah hala tertentu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Kedua-dua Pengepala dan Badan daripada Permintaan cURL dalam PHP?. 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