Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk mengalih keluar maklumat pengepala http dalam php? Analisis ringkas kaedah

Bagaimana untuk mengalih keluar maklumat pengepala http dalam php? Analisis ringkas kaedah

PHPz
Lepaskan: 2023-04-11 16:06:11
asal
1452 orang telah melayarinya

PHP ialah bahasa sebelah pelayan yang sangat popular dengan banyak fungsi berguna. Salah satu keperluan biasa ialah mengalih keluar maklumat pengepala HTTP. Pengepala HTTP ialah maklumat yang disertakan pada permulaan permintaan atau respons HTTP. Ia mengandungi banyak data berguna, seperti: status respons, jenis pelayan, tarikh, kuki, dsb.

Walau bagaimanapun, kadangkala kami perlu mengalih keluar maklumat pengepala HTTP dalam program PHP Ini mungkin kerana kami perlu memuat turun fail besar dengan cepat atau mengendalikan beberapa permintaan yang rumit dalam program. Walau apa pun sebabnya, berikut ialah beberapa cara untuk mengalih keluar maklumat pengepala HTTP:

Kaedah 1: Gunakan pengepala fungsi terbina dalam PHP()

PHP menyediakan pengepala fungsi terbina dalam yang popular() HTTP tajuk boleh dihantar. Kita boleh menggunakan fungsi pengepala() untuk menghantar pengepala HTTP kosong untuk mengalih keluar semua maklumat pengepala HTTP. Kod tersebut adalah seperti berikut:

header('Content-Type: ');
header('Content-Disposition: attachment; filename=file.zip');
header('Content-Length: ' . filesize($file));
readfile($file);
Salin selepas log masuk

Kod ini akan mengeluarkan pengepala Jenis Kandungan kosong, pengepala Panjang Kandungan dan pengepala Pelupusan Kandungan. Seterusnya, gunakan fungsi readfile() untuk membaca kandungan daripada fail dan mengeluarkannya.

Kaedah 2: Gunakan perpustakaan cURL

cURL ialah pustaka klien yang popular dalam PHP, yang boleh digunakan untuk menghantar permintaan HTTP dan mendapatkan respons. Dengan menggunakan perpustakaan cURL, kami boleh menghantar permintaan HTTP HEAD untuk mendapatkan hanya metadata fail dan bukan kandungan sebenar.

$ch = curl_init('http://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
$response = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
curl_close($ch);
echo $header;
Salin selepas log masuk

Dalam kod ini, kami mula-mula mencipta pemegang cURL menggunakan fungsi curl_init() dan masukkan URL. Kemudian kami menetapkan beberapa pilihan untuk memberitahu cURL bahawa kami hanya mahu mendapatkan maklumat pengepala HTTP. Apabila melaksanakan fungsi curl_exec(), cURL akan menghantar permintaan HTTP HEAD dan mengembalikan respons. Kami mendapat maklumat pengepala HTTP daripada respons dan mengeluarkannya.

Kaedah 3: Gunakan modul mod_headers Apache

Jika anda menggunakan Apache sebagai pelayan web, anda boleh menggunakan modul mod_headersnya untuk mengubah suai secara langsung pengepala HTTP. Ini memerlukan anda mempunyai kebenaran untuk mengedit fail konfigurasi Apache. Tambahkan kod berikut pada fail httpd.conf:

<FilesMatch "index.php">
   Header unset Server
   Header unset X-Powered-By
   Header unset Transfer-Encoding
   Header unset Content-Length
</FilesMatch>
Salin selepas log masuk

Kod ini akan sepadan dengan semua fail index.php dan mengalih keluar empat pengepala HTTP: Server, X-Powered-By, Transfer-Encoding dan Content-Length .

Ringkasan

Sama ada menggunakan fungsi pengepala() PHP, pustaka cURL atau modul mod_headers Apache, kami boleh mengalih keluar maklumat pengepala HTTP dengan mudah. Helah kecil ini berguna apabila menulis aplikasi web atau memproses data.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar maklumat pengepala http dalam php? Analisis ringkas kaedah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan