PHP get_headers: proxy üzerinden HTTP HEAD isteği gönderme
Bir akış bağlamını doğrudan get_headers'a verin, HEAD'i bilerek seçin ve yönlendirmelerin izlenip izlenmeyeceğine karar verin.
PHP'de get_headers() üçüncü argümanı olarak bir akış bağlamı kabul eder. PHP 8'de bir HTTP URL'si için başlık denetimi kendi proxy yapılandırmasını taşıyabilir:
$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 akış sarmalayıcısı için bir TCP uç noktasıdır. Bu genel HTTP denetimi için yer tutucu ana bilgisayarını ve bağlantı noktasını HTTP proxy listesinden kimlik doğrulaması olmayan bir adayla değiştirin. request_fulluri, birçok yönlendirici proxy'nin beklediği gibi HTTP istek satırında tam hedef URI'yi sağlar. Bu bağlam bu çağrıya aittir; diğer URL okumalarının kullandığı varsayılan bağlamı değiştirmez.
İşlevin adına rağmen varsayılan istek yöntemi GET'tir. Açık HEAD yöntemi, sunucudan ilgili yanıt gövdesi olmadan yanıt üst verilerini ister. Sunucu HEAD'i reddedebilir veya farklı işleyebilir, bu nedenle başarılı bir başlık denetimi sonraki indirmenin başarılı olacağının kanıtı değildir.
Burada ilk yanıtı incelemek için yönlendirmelerin izlenmesi kapalıdır. O zaman Location başlığı ve yönlendirme durumu, başka bir URL getirme talimatı yerine yararlı sonuçlardır. Denetim yönlendirmeleri izlemeliyse, bu politikayı bilerek değiştirin ve ek yanıt başlıklarını hesaba katın.
false argümanı indekslenmiş bir başlık dizisi tutar. İlişkisel ayrıştırma daha yararlı olduğunda true kullanın.