PHP se get_headers() aanvaar 'n stroomkonteks as sy derde argument. Op PHP 8 kan 'n kopkontrole vir 'n HTTP-URL sy eie instaanbediener-konfigurasie dra:

$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');
}

Die instaanbediener is 'n TCP-eindpunt vir die HTTP-stroomomhulsel. Vervang sy plekhouer-gasheer en -poort met 'n ongeverifieerde kandidaat uit die HTTP-instaanbedienerlys vir hierdie openbare HTTP-kontrole. request_fulluri verskaf die volledige bestemmings-URI in die HTTP-versoekreel, soos baie voorspan-instaanbedieners verwag. Hierdie konteks hoort by hierdie oproep; dit verander nie die verstekkonteks wat ander URL-lees gebruik nie.

Ten spyte van die funksie se naam, is sy verstek versoekmetode GET. Die eksplisiete HEAD-metode vra die bediener om antwoordmetadata sonder die ooreenstemmende antwoordliggaam. 'n Bediener kan HEAD verwerp of anders hanteer, so 'n suksesvolle kopkontrole is nie bewys dat 'n latere aflaai sal slaag nie.

Hier is die volg van omleidings afgeskakel om die eerste antwoord te ondersoek. 'n Location-kop en 'n omleidingstatus is dan nuttige resultate eerder as 'n opdrag om 'n ander URL te haal. As die kontrole omleidings moet volg, verander daardie beleid doelbewus en reken vir die bykomende antwoordkoppe.

Die false-argument hou 'n geïndekseerde kopskikking. Gebruik true wanneer assosiatiewe ontleding nuttiger is.

Verwante artikels