PHP get_headers: испрати HTTP HEAD барање преку прокси
Предајте контекст на тек директно на get_headers, изберете HEAD намерно и одлучете дали да се следат пренасочувања.
Во PHP, get_headers() прима контекст на тек како трет аргумент. На 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');
}Проксито е TCP крајна точка за HTTP-обвивката на текот. Заменете го неговиот хост и порта-заместувачи со неавтентифициран кандидат од списокот на HTTP прокси за оваа јавна HTTP проверка. request_fulluri го доставува целосниот URI на одредиштето во линијата за HTTP барање, како што очекуваат многу прокси кои препраќаат. Овој контекст и припаѓа на оваа повикување; не го менува стандардниот контекст што го користат другите читања на URL.
И покрај името на функцијата, нејзиниот стандарден метод на барање е GET. Експлицитниот метод HEAD бара од серверот метаподатоци за одговорот без соодветното тело на одговорот. Серверот може да го одбие HEAD или да го обработува поинаку, така што успешната проверка на заглавија не е доказ дека подоцнежно преземање ќе успее.
Овде следењето на пренасочувања е исклучено за да се прегледа првиот одговор. Заглавието Location и статусот на пренасочување тогаш се корисни резултати наместо упатство да се добие друг URL. Ако проверката треба да следи пренасочувања, намерно сменете ја таа политика и земете ги предвид дополнителните заглавија на одговорот.
Аргументот false задржува индексирана низа заглавија. Користете true кога асоцијативното парсирање е покорисно.