PHP get_headers: proxy ئارقىلىق HTTP HEAD تەلەپنامىسى ئەۋەتىش
stream context نى بىۋاسىتە get_headers قا تاپشۇرۇڭ، HEAD نى ئېنىق تاللاڭ ۋە قايتا نىشانلاشلارغا ئەگىشىش-ئەگىشمەسلىكنى بەلگىلەڭ.
PHP دا get_headers() ئۈچىنچى ئارگۇمېنتى سۈپىتىدە stream context نى قوبۇل قىلىدۇ. PHP 8 دە، HTTP URL ئۈچۈن باش ئېتىۋېتىش تەكشۈرۈشى ئۆزىنىڭ 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');
}proxy بولسا HTTP stream wrapper ئۈچۈن TCP ئاخىرقى نۇقتا. بۇ ئاممىۋى HTTP تەكشۈرۈش ئۈچۈن ئۇنىڭ ئورۇن باسقۇچلۇق خوجايىنى ۋە پورتىنى HTTP proxy تىزىملىكىدىن دەلىللەنمىگەن نامزات بىلەن ئالماشتۇرۇڭ. request_fulluri HTTP تەلەپ قۇرىدا تولۇق مەقسەت URI نى تەمىنلەيدۇ، نۇرغۇن ئىلگىرى سۈرۈش proxy لىرى شۇنداق كۈتىدۇ. بۇ context بۇ چاقىرۇشقا تەۋە؛ ئۇ باشقا URL ئوقۇشلار ئىشلىتىدىغان سۈكۈتتىكى context نى ئۆزگەرتمەيدۇ.
فۇنكسىيە نامىغا قارىماي، ئۇنىڭ سۈكۈتتىكى تەلەپ ئۇسۇلى GET. ئېنىق HEAD ئۇسۇلى مۇناسىۋەتلىك جاۋاب گەۋدىسىسىز جاۋاب مېتا سانلىق مەلۇماتىنى مۇلازىمېتىردىن تەلەپ قىلىدۇ. مۇلازىمېتىر HEAD نى رەت قىلىشى ياكى باشقىچە بىر تەرەپ قىلىشى مۇمكىن، شۇڭا مۇۋەپپەقىيەتلىك باش تەكشۈرۈش كېيىنكى چۈشۈرۈشنىڭ مۇۋەپپەقىيەتلىك بولىدىغانلىقىنىڭ ئىسپاتى ئەمەس.
بۇ يەردە تۇنجى جاۋابنى تەكشۈرۈش ئۈچۈن قايتا نىشانلاشلارغا ئەگىشىش ئېتىۋېتىلگەن. شۇ چاغدا Location باش ئېتى ۋە قايتا نىشانلاش ھالىتى باشقا URL ئېلىپ كېلىش كۆرسەتمىسى ئەمەس، بەلكى پايدىلىق نەتىجە. ئەگەر تەكشۈرۈش قايتا نىشانلاشلارغا ئەگىشىشى كېرەك بولسا، بۇ سىياسەتنى ئېنىق ئۆزگەرتىڭ ۋە قوشۇمچە جاۋاب باشلىرىنى ھېسابقا ئېلىڭ.
false ئارگۇمېنتى index لانغان باش ئېتى ماركىسىنى ساقلايدۇ. باغلانما تەھلىل تېخىمۇ پايدىلىق بولغاندا true نى ئىشلىتىڭ.