Dalam PHP, get_headers() menerima konteks strim sebagai argumen ketiganya. Pada PHP 8, semakan pengepala untuk URL HTTP boleh membawa konfigurasi proksinya sendiri:

$context = stream_context_create([
    'http' => [
        'proxy' => 'tcp://proxy.example.net:8080',
        'request_fulluri' => true,
        'method' => 'HEAD',
        'follow_location' => 0,
        'timeout' => 10,
    ],
]);

$headers = get_headers('http://example.net/file.zip', false, $context);
if ($headers === false) {
    throw new RuntimeException('Header request failed');
}

Proksi ialah titik akhir TCP untuk pembalut strim HTTP. Gantikan hos dan port pemegang tempatnya dengan calon tanpa pengesahan daripada senarai proksi HTTP untuk semakan HTTP awam ini. request_fulluri membekalkan URI destinasi penuh dalam baris permintaan HTTP, seperti yang dijangka oleh banyak proksi penghantar. Konteks ini milik panggilan ini; ia tidak mengubah konteks lalai yang digunakan oleh bacaan URL lain.

Walaupun nama fungsi itu, kaedah permintaan lalainya ialah GET. Kaedah HEAD yang jelas meminta pelayan metadata respons tanpa badan respons yang sepadan. Pelayan boleh menolak HEAD atau mengendalikannya secara berbeza, jadi semakan pengepala yang berjaya bukan bukti bahawa muat turun kemudian akan berjaya.

Di sini, mengikut lencongan dimatikan untuk memeriksa respons pertama. Pengepala Location dan status lencongan kemudian menjadi hasil yang berguna dan bukannya arahan untuk mengambil URL lain. Jika semakan perlu mengikut lencongan, ubah dasar itu secara sedar dan ambil kira pengepala respons tambahan.

Argumen false mengekalkan tatasusunan pengepala berindeks. Gunakan true apabila penghuraian bersekutu lebih berguna.

Artikel berkaitan