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 қолданыңыз.

Қатысты мақалалар