Saltar al contenido

Flujos de PHP

Los flujos (streams) son una característica potente en PHP que permite a los desarrolladores leer y escribir datos desde una variedad de fuentes, incluyendo archivos, sockets y solicitudes HTTP. La API de Flujos de PHP proporciona una forma uniforme de acceder y manipular estos diferentes tipos de flujos.

API de Flujos de PHP

La API de Flujos de PHP proporciona un conjunto de funciones que se pueden usar para abrir, leer, escribir y cerrar flujos. Algunas de las funciones más comunes son:

  • fopen(): Abre un archivo o URL y devuelve un recurso de flujo.
  • fread(): Lee un número especificado de bytes de un flujo.
  • fwrite(): Escribe una cadena en un flujo.
  • fclose(): Cierra un flujo abierto.

Para casos de uso más simples, funciones de alto nivel como file_get_contents() y file_put_contents() envuelven automáticamente las operaciones de flujo. Los flujos también admiten contextos y filtros para una configuración avanzada, y deben usarse con un manejo de errores adecuado (por ejemplo, verificando los valores de retorno o usando bloques try/catch).

Tipos de Flujos

Los flujos se pueden clasificar en cuatro tipos según la fuente de los datos:

  • Flujos de archivos: Flujos que leen y escriben datos en archivos.
  • Flujos de memoria: Flujos que leen y escriben datos en la memoria utilizando los wrappers php://memory o php://temp.
  • Flujos de sockets: Flujos que leen y escriben datos a través de sockets de red.
  • Flujos HTTP: Flujos que leen y escriben datos desde solicitudes y respuestas HTTP.

Ejemplo de uso

Veamos un ejemplo para entender cómo se puede usar la API de Flujos de PHP:

php
<?php

$stream = fopen('http://www.example.com', 'r');
if ($stream) {
  while (!feof($stream)) {
    $data = fgets($stream);
    echo $data;
  }
  fclose($stream);
}

En el ejemplo anterior, usamos la función fopen() para abrir un flujo HTTP hacia la URL http://www.example.com en modo de lectura. Luego, usamos un bucle while para leer los datos del flujo mediante la función fgets() y los imprimimos en la pantalla usando la sentencia echo. Finalmente, usamos la función fclose() para cerrar el flujo. Ten en cuenta que en código de producción, siempre debes manejar errores potenciales, como fallos de red o URLs inválidas, usando bloques try/catch o el operador de supresión de errores @.

Conclusión

La API de Flujos de PHP es una característica potente que permite a los desarrolladores leer y escribir datos desde una variedad de fuentes. Proporciona una forma uniforme de acceder y manipular flujos de datos, lo que facilita el trabajo con archivos, sockets y solicitudes HTTP en PHP. Al utilizar la API de Flujos de PHP, los desarrolladores pueden construir aplicaciones robustas y flexibles que puedan manejar una amplia gama de fuentes de datos.

Práctica

¿Para qué se pueden usar los flujos de PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.