PHP get_headers: ప్రాక్సీ ద్వారా HTTP HEAD అభ్యర్థనను పంపండి
stream context ను నేరుగా get_headers కు ఇవ్వండి, HEAD ను ఉద్దేశపూర్వకంగా ఎంచుకోండి మరియు రీడైరెక్ట్లను అనుసరించాలా వద్దా నిర్ణయించండి.
PHP లో get_headers() తన మూడవ ఆర్గ్యుమెంట్గా stream context ను అంగీకరిస్తుంది. PHP 8 లో, HTTP URL కోసం హెడర్ తనిఖీ దాని స్వంత ప్రాక్సీ కాన్ఫిగరేషన్ను తీసుకెళ్లగలదు:
$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');
}ప్రాక్సీ అనేది HTTP stream wrapper కోసం TCP ముగింపు బిందువు. ఈ పబ్లిక్ HTTP తనిఖీ కోసం దాని ప్లేస్హోల్డర్ హోస్ట్ మరియు పోర్ట్ను HTTP ప్రాక్సీ జాబితా నుండి ధృవీకరించబడని అభ్యర్థితో భర్తీ చేయండి. request_fulluri HTTP అభ్యర్థన పంక్తిలో పూర్తి గమ్యస్థాన URI ను అందిస్తుంది, అనేక ఫార్వర్డ్ ప్రాక్సీలు ఆశించినట్లు. ఈ context ఈ కాల్కు చెందినది; ఇతర URL పఠనాలు ఉపయోగించే డిఫాల్ట్ context ను ఇది మార్చదు.
ఫంక్షన్ పేరు అలా ఉన్నప్పటికీ, దాని డిఫాల్ట్ అభ్యర్థన పద్ధతి GET. స్పష్టమైన HEAD పద్ధతి సంబంధిత ప్రతిస్పందన బాడీ లేకుండా ప్రతిస్పందన మెటాడేటాను సర్వర్ నుండి కోరుతుంది. సర్వర్ HEAD ను తిరస్కరించవచ్చు లేదా భిన్నంగా నిర్వహించవచ్చు, కాబట్టి విజయవంతమైన హెడర్ తనిఖీ తర్వాతి డౌన్లోడ్ విజయవంతమవుతుందనడానికి రుజువు కాదు.
ఇక్కడ మొదటి ప్రతిస్పందనను పరిశీలించడానికి రీడైరెక్ట్ల అనుసరణ ఆఫ్ చేయబడింది. అప్పుడు Location హెడర్ మరియు రీడైరెక్ట్ స్థితి మరొక URL తీసుకురావాలనే సూచనకు బదులుగా ఉపయోగకరమైన ఫలితాలు. తనిఖీ రీడైరెక్ట్లను అనుసరించాల్సి ఉంటే, ఆ విధానాన్ని ఉద్దేశపూర్వకంగా మార్చండి మరియు అదనపు ప్రతిస్పందన హెడర్లను పరిగణించండి.
false ఆర్గ్యుమెంట్ ఇండెక్స్ చేసిన హెడర్ శ్రేణిని ఉంచుతుంది. అనుబంధ పార్సింగ్ మరింత ఉపయోగకరంగా ఉన్నప్పుడు true ఉపయోగించండి.