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 භාවිතා කරන්න.