PHP file_get_contents ile bir HTTP URL'sini proxy üzerinden getirme
PHP'nin HTTP akış sarmalayıcısını yönlendirici proxy için yapılandırın; istek biçimlendirmesi ve akış bağlamlarının sınırları dahil.
PHP cURL olmadan sıradan bir HTTP isteği için HTTP akış sarmalayıcısına bir proxy bağlamı geçirin:
$context = stream_context_create([
'http' => [
'proxy' => 'tcp://203.0.113.10:8080',
'request_fulluri' => true,
'timeout' => 10,
],
]);
$body = file_get_contents('http://example.com/', false, $context);Belge uç noktasını HTTP proxy'nizle veya HTTP proxy listesinden bir adayla değiştirin. HTTP bağlam arayüzü proxy için bir TCP adresi bekler. request_fulluri=true tam hedef URI'yi istek satırına koyar; birçok yönlendirici proxy bunu gerektirir. Zaman aşımı, akış işlemini o sarmalayıcının kurallarına göre sınırlar.
Gövdeyi ayrıştırmadan önce dönen değeri ve uyarıyı kontrol edin; başarısız bir okuma ile boş başarılı yanıt farklı işlem gerektirir. Tanılamaya bu tek HTTP hedefi ve sınırlı istekle başlayın. HTTPS, gerçek sarmalayıcı/PHP sürümü için kontrol edilmesi gereken tünelleme ve TLS davranışı ekler; bu örnek bu yetenekleri kanıtlamaz.
Bağlamı bu çağrıda geçirmek rotayı görünür tutar ve ilgisiz URL okumalarını değiştirmekten kaçınır. Paylaşılan varsayılan bağlam yalnızca uygulama bu politikayı bilerek istediğinde uygundur; kitaplıklar daha geniş kapsamını hesaba katmalıdır.
Bu, PHP akışlarını yapılandırır; bağımsız olarak oluşturulmuş bir cURL tanıtıcısını, bir tarayıcıyı veya başka bir süreci değil. Bir paketin bu bağlamı kullanmasını beklemeden önce gerçek HTTP taşımasını belirleyin.