HTTP bağlamı seçenekleri

HTTP bağlamı seçenekleriHTTP bağlamı seçeneklerinin listesi

Açıklama

http:// ve https:// aktarımları için bağlam seçenekleri.

Seçenekler

method string

Uzak sunucu tarafından desteklenen GET, POST veya başka bir HTTP yöntemi.

GET öntanımlıdır.

header array veya string

İstek sırasında gönderilecek ek başlıklar. Bu seçenekte belirtilen değerler diğer değerleri geçersiz kılar (User-agent:, Host:, Authentication: gibi).

user_agent string

User-Agent: başlığı ile gönderilecek değer. Bu değer sadece, tarayıcı header seçeneği ile belirtilmemişse kullanılır.

Öntanımlı olarak, php.ini dosyasındaki user_agent değeri kullanılır.

content string

Başlıklardan sonra gönderilecek ek veri. Normalde POST veya PUT istekleriyle kullanılır.

proxy string

Vekil sunucunun adresini belirten URI (tcp://vekil.mesela.dom:5100 gibi).

request_fulluri boolean

TRUE atanırsa, istek oluşturulurken URI'nin tamamı kullanılır (GET http://mesela.dom/dizin/yolu/dosya.html HTTP/1.0 gibi). Bu standart dışı bir istek biçimi olsa da bazı vekil sunucular bunun böyle olmasını gerektirirler.

FALSE öntanımlıdır.

follow_location integer

Location başlık yönlendirmelerini izler. İptal etmek için 0 atayın.

1 öntanımlıdır.

max_redirects integer

İzlenecek yönlendirmelerin azami sayısı. 1 veya daha az bir değer belirtilmesi hiçbir yönlendirmenin izlenmeyeceği anlamına gelir.

20 öntanımlıdır.

protocol_version float

HTTP protokolünün sürümü.

1.0 öntanımlıdır.

Bilginize:

PHP'nin 5.3.0 sürümünden önce parçalı aktarım gerçeklenmemişti. Dolayısıyla bu değeri 1.1 olarak belirtirseniz, 1.1 uyumluluğundan kendiniz sorumlu olursunuz.

timeout float

Bir float değer olarak saniye cinsinden okuma zaman aşımı. (10.5 gibi).

Öntanımlı olarak, php.ini dosyasındaki default_socket_timeout yönergesinin değeri kullanılır.

ignore_errors boolean

Başarısızlık durumu kodlarında bile içerik alınır.

FALSE öntanımlıdır.

Sürüm Bilgisi

Sürüm: Açıklama
5.3.4 Eklendi: follow_location.
5.3.0 Değişti: protocol_version yönergesine 1.1 atandığında parçalı aktarım kodlaması artık desteklenmektedir.
5.2.10 Eklendi: ignore_errors
5.2.10 Değişti: Artık header sayısal indisli bir dizi olabilmektedir.
5.2.1 Eklendi: timeout
5.1.0 Eklendi: HTTP vekilleri üzerinden HTTPS vekaleti
5.1.0 Eklendi: max_redirects
5.1.0 Eklendi: protocol_version

Örnekler

Örnek 1 - Bir sayfayı çekip veriyi POST ile göndermek

<?php

$postverisi 
http_build_query(
    array(
        
'var1' => 'biraz içerik',
        
'var2' => 'eh işte'
    
)
);

$seçenekler = array('http' =>
    array(
        
'method'  => 'POST',
        
'header'  => 'Content-type: application/x-www-form-urlencoded',
        
'content' => $postverisi
    
)
);

$bağlam stream_context_create($seçenekler);

$sonuç file_get_contents('http://mesela.dom/submit.php'false$bağlam);

?>

Örnek 2 Başlıklar ve içerik alınırken yönlendirmeleri yoksaymak

<?php

$url 
"http://www.example.org/header.php";

$opts = array('http' =>
    array(
        
'method' => 'GET',
        
'max_redirects' => '0',
        
'ignore_errors' => '1'
    
)
);

$context stream_context_create($opts);
$stream fopen($url'r'false$context);

// meta veri ve başlıklar
var_dump(stream_get_meta_data($stream));

// esas veri
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Notlar

Bilginize: Temel soket akımı bağlamı seçenekleri
Ek bağlamsal seçenekler temel aktarım tarafından desteklenebilir. http:// akımları için tcp:// aktarımının bağlamsal seçeneklerine atıf yapılır. https:// akımları için ise ssl:// aktarımının bağlamsal seçeneklerine atıf yapılır.

Bilginize: HTTP durum satırı
Bu akım sarmalayıcı bir yönlendirmeyi izlerken stream_get_meta_data() tarafından döndürülen wrapper_data, gerçekte 0 indisinde içerik verisine uygulanan HTTP durum satırını içermeyebilir.

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permantenly',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
İlk istek 301 (kalıcı yönlendirme) ile döndü, dolayısıyla akım sarmalayıcı özdevinimli olarak yönlendirmeyi izleyip bir 200 yanıtı aldı (indis = 4).