Ce face stream_get_wrappers
Funcțiile de fișier din PHP (fopen, file_get_contents) pot lucra cu multe tipuri de adrese, prin „wrappere”: https://, php://memory, data://, compress.zlib://. stream_get_wrappers spune ce wrappere sunt disponibile pe serverul curent.
Lista depinde de extensiile instalate: https apare doar cu OpenSSL, zip doar cu extensia zip. Wrapperele înregistrate de tine cu stream_wrapper_register apar și ele.
Ce returnează
Un tablou cu numele wrapperelor, fără ://.
Exemple
Exemplul 1: Este disponibil un wrapper?
<?php
$wrappere = stream_get_wrappers();
foreach (["file", "php", "https", "data", "telnet"] as $nume) {
echo $nume . ": " . (in_array($nume, $wrappere) ? "da" : "nu") . "\n";
}
Rezultat
file: da
php: da
https: da
data: da
telnet: nu
Exemplul 2: Un mesaj clar dacă lipsește HTTPS
<?php
if (!in_array("https", stream_get_wrappers())) {
exit("Activează extensia openssl ca să descarci cursul valutar.\n");
}
echo "Se poate descărca prin HTTPS.";
Rezultat
Se poate descărca prin HTTPS.
Greșeli frecvente
- Cauți numele cu
://la final:in_array("https://", ...). Lista conține doar"https".
Comenzi înrudite
stream_wrapper_register: Înregistrează un protocol propriu (de exemplu mem://), implementat de o clasă, pentru fopen, file_get_contents și celelalte.stream_get_transports: Returnează tipurile de socket pe care le acceptă stream_socket_client și fsockopen (tcp, udp, unix, ssl, tls…).stream_get_filters: Returnează lista filtrelor de stream disponibile (string.toupper, convert.*, zlib.* și cele proprii).