Signatur
Beschreibung
stream_context_get_options() liest alle Optionen aus, die einem Stream-Kontext (erstellt mit stream_context_create() oder stream_context_set_option()) zugewiesen wurden. Der Rückgabewert ist ein verschachteltes assoziatives Array, das nach Wrapper (z. B. http, ssl, ftp) und den jeweiligen Optionsschlüsseln strukturiert ist.
Die Funktion ist besonders nützlich zum Debuggen und Prüfen, welche Konfiguration ein Kontext aktuell enthält – etwa bevor er an fopen(), file_get_contents() oder Socket-Funktionen übergeben wird. So können Fehler durch fehlende oder falsche Optionen frühzeitig erkannt werden.
Typische Einsatzszenarien sind HTTP-Requests mit benutzerdefinierten Headern oder Timeouts, SSL-Verbindungen mit Zertifikatspfaden sowie FTP-Übertragungen mit spezifischen Transfer-Einstellungen. Durch das Auslesen der Optionen lässt sich sicherstellen, dass alle gesetzten Parameter korrekt übernommen wurden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $context Pflicht | resource | Eine gültige Stream-Kontext-Ressource, wie sie z. B. von stream_context_create() erzeugt wurde. |
Rückgabewert
['wrapper' => ['option' => wert]]. Wurden noch keine Optionen gesetzt, wird ein leeres Array zurückgegeben.Beispiele
HTTP-Kontext-Optionen auslesen
<?php
$options = [
'http' => [
'method' => 'POST',
'header' => "Content-Type: application/json\r\n",
'content' => json_encode(['key' => 'value']),
'timeout' => 10,
],
];
$context = stream_context_create($options);
// Optionen des Kontexts auslesen
$current = stream_context_get_options($context);
print_r($current);
SSL-Optionen eines Kontexts prüfen
<?php
$context = stream_context_create([
'ssl' => [
'verify_peer' => true,
'verify_peer_name' => true,
'cafile' => '/etc/ssl/certs/ca-certificates.crt',
],
]);
$opts = stream_context_get_options($context);
if (!empty($opts['ssl']['verify_peer'])) {
echo "SSL-Peer-Verifizierung ist aktiv.\n";
}
echo 'CA-Datei: ' . ($opts['ssl']['cafile'] ?? 'nicht gesetzt') . "\n";
Kontext ohne Optionen gibt leeres Array zurück
<?php
$context = stream_context_create();
$opts = stream_context_get_options($context);
var_dump($opts);
// Wichtig · Fallstricke
Sicherheitshinweis: Wenn SSL-Kontexte verwendet werden, sollten die Optionen verify_peer und verify_peer_name immer auf true gesetzt sein. Mit stream_context_get_options() lässt sich das vor dem eigentlichen Request programmatisch überprüfen.
Die Funktion gibt ausschließlich Optionen zurück (Wrapper-Parameter). Kontext-Parameter wie notification oder blocking werden separat über stream_context_get_params() abgerufen.