PHP get_headers: thumela isicelo se-HTTP HEAD nge-proxy
Nikeza i-get_headers i-stream context ngqo, khetha i-HEAD ngamabomu futhi unqume ukuthi uzolandela ama-redirect yini.
Ku-PHP, i-get_headers() yamukela i-stream context njengengxenye yayo yesithathu. Ku-PHP 8, ukuhlolwa kwezihloko kwe-HTTP URL kungathwala ukucushwa kwayo kwe-proxy:
$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');
}I-proxy iyindawo yokugcina ye-TCP yesembozo sokugeleza kwe-HTTP. Shintsha umsingathi nembobo yendawo egcwalisiwe ngomuntu ongakaqinisekiswa ovela ohlwini lwama-proxy e-HTTP kulolu hlolo lwe-HTTP lomphakathi. I-request_fulluri inikeza i-URI yendawo okuyiwa kuyo ephelele emgqeni wesicelo se-HTTP, njengoba ama-proxy amaningi adlulisayo elindele. Le context ingeyalolu cingo; ayishintshi i-context ezenzakalelayo esetshenziswa okunye ukufunda kwe-URL.
Naphezu kwegama lomsebenzi, indlela yawo ezenzakalelayo yesicelo i-GET. Indlela ecacile ye-HEAD icela iseva imethadatha yempendulo ngaphandle komzimba wempendulo ohambisanayo. Iseva ingayenqaba i-HEAD noma iyiphathise ngendlela ehlukile, ngakho ukuhlolwa kwezihloko okuphumelelayo akubona ubufakazi bokuthi ukulanda kamuva kuzophumelela.
Lapha, ukulandela ama-redirect kuvaliwe ukuze kuhlolwe impendulo yokuqala. Khona-ke isihloko se-Location nesimo se-redirect kuba yimiphumela ewusizo esikhundleni somyalelo wokuthatha enye i-URL. Uma ukuhlola kufanele kulandele ama-redirect, shintsha leyo nqubomgomo ngamabomu futhi ucabangele izihloko zempendulo ezengeziwe.
Ingxenye ye-false igcina uhlu lwezihloko olunekhodi. Sebenzisa i-true lapho ukuhlaziya okuhambisanayo kuwusizo kakhulu.