PHP ичинде get_headers() үчүнчү аргумент катары stream контекстин кабыл алат. 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ни берет, көптөгөн өткөрүүчү проксилер ушундай күтөт. Бул контекст ушул чакырууга таандык; ал башка URL окуулары колдонгон демейки контексти өзгөртпөйт.

Функциянын атына карабастан, анын демейки суроо ыкмасы GET. Ачык HEAD ыкмасы серверден тиешелүү жооп денесинсиз жооп метаберилиштерин сурайт. Сервер HEADти четке кагышы же башкача иштетиши мүмкүн, ошондуктан аталыштарды ийгиликтүү текшерүү кийинки жүктөөнүн ийгиликтүү болорун далилдебейт.

Бул жерде биринчи жоопту карап чыгуу үчүн кайра багыттоолорду аткаруу өчүрүлгөн. Ошондо Location аталышы жана кайра багыттоо статусу башка URL алып келүү көрсөтмөсү эмес, пайдалуу натыйжа болуп калат. Эгер текшерүү кайра багыттоолорду аткарууга тийиш болсо, бул саясатты атайын өзгөртүңүз жана кошумча жооп аталыштарын эске алыңыз.

false аргументи индекстелген аталыштар массивин сактайт. Ассоциативдик талдоо пайдалуураак болгондо true колдонуңуз.

Тектеш макалалар