stream_context_set_option / stream_context_set_options în PHP

Stream-uri PHP 4.3+ (stream_context_set_options: PHP 8.3+)

Adaugă sau schimbă o opțiune într-un context de stream existent; set_options primește mai multe deodată.

Sintaxă
stream_context_set_option($context, array|string $wrapper_or_options, ?string $option_name = null, mixed $value): true

Ce face stream_context_set_option / stream_context_set_options

stream_context_set_option($context, "http", "timeout", 5) setează o singură opțiune pentru un wrapper. Opțiunile existente rămân, cele cu același nume sunt înlocuite.

Pentru mai multe opțiuni deodată, din PHP 8.3 există stream_context_set_options($context, ["http" => [...]]). Forma veche, stream_context_set_option cu doar două argumente, este depreciată din PHP 8.4.

Parametri

Parametru Descriere
$context Contextul modificat.
$wrapper_or_options Numele wrapperului ("http", "ssl").
$option_name Numele opțiunii.
$value Valoarea opțiunii.

Ce returnează

Mereu true.

Exemple

Exemplul 1: Câte o opțiune

<?php
$context = stream_context_create();
stream_context_set_option($context, "http", "method", "POST");
stream_context_set_option($context, "http", "timeout", 5);
stream_context_set_option($context, "http", "timeout", 10);

print_r(stream_context_get_options($context));

Rezultat

Array
(
    [http] => Array
        (
            [method] => POST
            [timeout] => 10
        )

)

Exemplul 2: Mai multe deodată (PHP 8.3+)

<?php
$context = stream_context_create(["http" => ["timeout" => 5]]);

stream_context_set_options($context, [
    "http" => ["header" => "Accept: application/json"],
    "ssl" => ["verify_peer" => true],
]);

print_r(stream_context_get_options($context));

Rezultat

Array
(
    [http] => Array
        (
            [timeout] => 5
            [header] => Accept: application/json
        )

    [ssl] => Array
        (
            [verify_peer] => 1
        )

)

Greșeli frecvente

  • Apelezi stream_context_set_option($context, ["http" => [...]]) cu un tablou. În PHP 8.4+ primești Deprecated. Folosește stream_context_set_options.

Comenzi înrudite

  • stream_context_create: Creează un set de opțiuni (metodă, antete, timeout) pentru file_get_contents, fopen și alte funcții de fișier.
  • stream_context_get_options: Returnează opțiunile unui context de stream (sau ale contextului folosit de un stream deschis).