Los protocolos pseudo en PHP, también conocidos como wrappers de stream, representan un mecanismo espeicalizado que permite acceder a diferentes tipos de recursos como sistemas de archivos locales, recursos de red o contenidos comprimidos a través de una interfaz unificada. Esta funcionalidad habilita el uso de funciones estándar del sistema de archivos como file_get_contents(), fopen(), y fwrite() para operar sobre diversos tipos de datos.
Protocolos pseudo comunes en PHP
Entre los protocolos pseudo más utilizados se encuentran:
file://- Acceso al sistema de archivos local. Este es el wrapper predeterminado y generalmente puede omitirse.http://yhttps://- Acceso a recursos mediante protocolos HTTP o HTTPS, permitiendo obtener o enviar datos a servidores remotos.ftp://yftps://- Utilizados para acceder a recursos en servidores FTP (File Transfer Protocol).php://- Protocolo especial para acceder a diferentes flujos de entrada/salida de PHP:php://input- Accede a datos POST brutos. Este flujo es solo lectura.php://output- Escribe directamente en el búfer de salida.php://memoryyphp://temp- Almacena datos temporalmente en memoria si la cantidad es pequeña, de lo contrraio utiliza archivos temporales. Estos flujos permiten lectura y escritura.
data://- Permite leer datos embebidos, como imágenes u otros tipos de archivos codificados directamente en el script.zlib://- Proporciona acceso a archivos comprimidos.phar://- Acceso a archivos PHAR (PHP Archive), que pueden contener aplicaciones PHP completas.
Estos protocolos permiten operaciones simples como si fueran archivos locales. Por ejemplo, file_get_contents('http://www.ejemplo.com') obtiene el contenido de una página remota.
Configuración de contexto de streams
Para personalizar el comportamiento predeterminado, puedes utilizar contextos de stream que permiten modificar encabezados HTTP, controlar tiempos de espera, proxies o métodos de solicitud. El contexto se crea con stream_context_create():
// Configurar opciones de contexto
$configuracion = [
'http' => [
'method' => 'GET',
'header' => "User-Agent: MyApp/1.0\r\n" .
"Authorization: Bearer token123\r\n"
]
];
$ctx = stream_context_create($configuracion);
// Utilizar contexto personalizado para recurso HTTP
$contenido = file_get_contents('https://api.ejemplo.com/datos', false, $ctx);
Verificación de wrappers disponibles
No todas las instalaciones de PHP soportan todos los wrappers. La disponibilidad depende de la configuración de PHP y extensiones instaladas. Para verificar qué wrappers están disponibles:
$wrappers_disponibles = stream_get_wrappers();
var_dump($wrappers_disponibles);
Este código mostrará un arreglo similar a:
Array
(
[0] => file
[1] => http
[2] => https
[3] => ftp
[4] => php
[5] => memory
[6] => temp
[7] => data
[8] => zlib
[9] => phar
[10] => zip
)
Los protocolos pseudo en PHP proporcionan una funcionalidad poderosa para manipular diversos recursos de stream, aumentando significativamente la flexibilidad de los scripts PHP para interactuar con el entorno externo.