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 സ്ട്രീം റാപ്പറിനുള്ള TCP എൻഡ്പോയിന്റാണ് പ്രോക്സി. ഈ പൊതു HTTP പരിശോധനയ്ക്കായി അതിന്റെ പ്ലേസ്ഹോൾഡർ ഹോസ്റ്റും പോർട്ടും HTTP പ്രോക്സി പട്ടികയിൽ നിന്നുള്ള പ്രാമാണീകരിക്കാത്ത സ്ഥാനാർത്ഥിയാക്കി മാറ്റുക. request_fulluri HTTP അഭ്യർത്ഥനാ വരിയിൽ പൂർണ്ണ ലക്ഷ്യ URI നൽകുന്നു, പല ഫോർവേഡ് പ്രോക്സികളും പ്രതീക്ഷിക്കുന്നതുപോലെ. ഈ context ഈ കോളിന്റേതാണ്; മറ്റ് URL വായനകൾ ഉപയോഗിക്കുന്ന ഡിഫോൾട്ട് context-നെ ഇത് മാറ്റുന്നില്ല.
ഫംഗ്ഷന്റെ പേര് അങ്ങനെയായിരുന്നാലും, അതിന്റെ ഡിഫോൾട്ട് അഭ്യർത്ഥനാ രീതി GET ആണ്. വ്യക്തമായ HEAD രീതി ബന്ധപ്പെട്ട പ്രതികരണ ബോഡി ഇല്ലാതെ സെർവറിൽ നിന്ന് പ്രതികരണ മെറ്റാഡാറ്റ ആവശ്യപ്പെടുന്നു. സെർവർ HEAD നിരസിക്കുകയോ വ്യത്യസ്തമായി കൈകാര്യം ചെയ്യുകയോ ചെയ്യാം, അതിനാൽ വിജയകരമായ ഹെഡർ പരിശോധന പിന്നീടുള്ള ഡൗൺലോഡ് വിജയിക്കുമെന്നതിന്റെ തെളിവല്ല.
ഇവിടെ ആദ്യത്തെ പ്രതികരണം പരിശോധിക്കാൻ റീഡയറക്ടുകൾ പിന്തുടരുന്നത് അണച്ചിരിക്കുന്നു. അപ്പോൾ Location ഹെഡറും റീഡയറക്ട് നിലയും മറ്റൊരു URL കൊണ്ടുവരാനുള്ള നിർദ്ദേശമല്ല, ഉപയോഗപ്രദമായ ഫലങ്ങളാണ്. പരിശോധന റീഡയറക്ടുകൾ പിന്തുടരേണ്ടതാണെങ്കിൽ, ആ നയം ബോധപൂർവം മാറ്റി അധിക പ്രതികരണ ഹെഡറുകൾ കണക്കിലെടുക്കുക.
false ആർഗ്യുമെന്റ് ഇൻഡക്സ് ചെയ്ത ഹെഡർ ശ്രേണി നിലനിർത്തുന്നു. സഹബന്ധ പാഴ്സിംഗ് കൂടുതൽ ഉപയോഗപ്രദമാകുമ്പോൾ true ഉപയോഗിക്കുക.