Función PHP OB_Start

Función PHP OB_Start
El ob_start () es una función incorporada de PHP para habilitar el amortiguación de la salida. Si el buffering de salida está habilitado, toda la salida se almacenará en el búfer interno y no se enviará ninguna salida del script al navegador. Algunas otras funciones incorporadas se utilizan con la función ob_start (). La función ob_get_content () se utiliza para almacenar el contenido del búfer interno en una variable.

La función ob_end_flush () se usa para imprimir el contenido del búfer interno. La función ob_end_clean () se usa para limpiar el contenido del búfer interno. Los usos de la función ob_start () en PHP se han mostrado en este tutorial.

Sintaxis:

Todos los argumentos de las funciones ob_start () son opcionales y pueden tomar tres argumentos. La sintaxis de esta función se da a continuación.

bool ob_start (Callable $ llamado = nulo, int $ chunk_size = 0, int $ flags = php_output_handler_stdflags)
  • El primer argumento opcional toma un nombre de función de devolución de llamada para modificar el contenido del búfer antes de enviar a la salida.
  • El segundo valor opcional se usa para establecer el tamaño del búfer y el valor predeterminado de este argumento es 0.
  • El tercer argumento opcional se utiliza para establecer la maspata de bits que define qué operaciones están permitidas y cuáles no están permitidas. El valor predeterminado de este argumento es php_output_handler_stdflags que indica que las funciones ob_flush (), ob_clean (), ob_get_flush (), ob_end_flush () y ob_end_clean () están permitidas.
  • Vuelve verdadero Sobre el éxito y las devoluciones FALSO sobre falla.

Diferentes usos de la función ob_start ()

Los usos de la función ob_start () con otras funciones relacionadas con el búfer se han explicado en esta parte del tutorial.

Ejemplo-1: uso de la función ob_start () sin ningún argumento

Cree un archivo PHP con el siguiente script para conocer el uso de la función ob_start () sin ningún argumento. Se han enviado dos valores de cadena al búfer después de llamar a la función ob_start (). Se ha llamado a la función ob_end_clean () en el script para limpiar el búfer después de llamar a la función ob_start () la primera vez. Para esto, la primera cadena se eliminará del búfer y la segunda cadena se imprimirá en la salida.

// llamar a la función ob_start () por primera vez
ob_start ();
// imprime el valor de la cadena
Echo "Prueba de valor de cadena1
";
// limpia el búfer
ob_end_clean ();
// llamar a ob_start () función por segunda vez
ob_start ();
// imprime el valor de la cadena
Echo "Prueba de cadena Value2
";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

Ejemplo-2: uso de la función ob_start () con la función de devolución de llamada

Cree un archivo PHP con el siguiente script para conocer el uso de la función ob_start () con una función de devolución de llamada. Se declara una variable de cadena en el script. Se ha declarado que la función de devolución de llamada () reemplaza la parte particular de la variable de cadena antes de enjuagar la salida del búfer. La función ob_start () se llama con el primer argumento que llamará a la función de devolución de llamada () y devolverá la cadena modificada al búfer. A continuación, la función ob_end_flush () ha usado para enjuagar el contenido del búfer en el navegador.

// declarar una variable de cadena
$ str = "me gusta la programación PHP.
";
eco "La cadena original: $ str ";
// Defina la función de devolución de llamada
Function Callback ($ buffer)

// reemplazar la palabra 'php' con 'python'
return (str_replace ("php", "python", $ buffer));

eco "La cadena reemplazada:";
// llame a la función ob_start () con la función de devolución de llamada
ob_start ("devolución de llamada");
echo $ str;
// Imprimir contenido del búfer interno
ob_end_flush ();
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. Según la salida, la palabra, 'php' de la cadena ha sido reemplazada por la palabra, 'python'. La cuerda, 'Me gusta la programación PHP'se ha convertido en la cadena', 'Me gusta la programación de Python'por la función de devolución de llamada ().

Ejemplo-3: Uso de la función ob_start () con el valor de bitmask

Se menciona anteriormente que el valor predeterminado de bitmask de la función ob_start () es php_output_handler_stdflags. Esta función tiene muchos otros valores de masteros de bits.

Los usos de php_output_handler_cleanable y php_output_handler_flushable bitmasks se han mostrado en este ejemplo.

No se ha definido ninguna función de devolución de llamada para la función ob_start () aquí y el tamaño del búfer se ha establecido en 0. La función ob_clean () eliminará el contenido del búfer. Entonces, la primera salida no se imprimirá en el navegador.

// Declarar función con php_output_handler_cleanable indicador
ob_start (nulo, 0, php_output_handler_cleanable);
Echo "Linux Sugerencia
";
// limpia el búfer
ob_clean ();
// Declarar función con php_output_handler_flushable Flag
ob_start (nulo, 0, php_output_handler_flushable);
echo "Bienvenido a Linuxhint";
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. Según la salida, la segunda salida del búfer se ha impreso.

Ejemplo-4: uso de la función ob_start () con ob_get_contents ()

Cree un archivo PHP con el siguiente script para conocer el uso de la función ob_start () con una función de devolución de llamada y la función ob_get_contents (). La función convert_upper () se ha utilizado como la función de devolución de llamada de la función ob_start (). El propósito de esta función es convertir el contenido del búfer en mayúsculas. Se han enviado tres valores de cadena al búfer y la salida del ob_get_contents () se ha almacenado en tres variables. Cuando se ejecutará la función ob_end_flush (), el contenido modificado del búfer se imprimirá en el navegador. La función var_dump () enloquecerá ese contenido de tres variables.

// Defina la función de devolución de llamada
función convert_upper ($ buffer)

// encubrir la cadena en mayúsculas
return (strtoupper ($ buffer));

// llamar a_start () con la función de devolución de llamada
ob_start ('convert_upper');
// La cadena se convertirá en mayúsculas
Echo "Adnan";
$ var1 = ob_get_contents ();
Echo "Sakib";
$ var2 = ob_get_contents ();
Echo "Mostafizur";
$ var3 = ob_get_contents ();
// imprime la cadena convertida
ob_end_flush ();
eco "
";
// imprime los valores de volcado de la variable
var_dump ($ var1, $ var2, $ var3);
?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior. Según la salida, tres valores de cadena se han convertido en letras mayúsculas y el contenido de las tres variables no se ha convertido en la letra mayúscula.

Conclusión

La función ob_start () se usa en el script cuando se requiere almacenar los datos en el búfer para cualquier propósito en particular antes de imprimir en la salida. El uso de la función ob_start () con otras funciones relacionadas se ha explicado en este tutorial con múltiples ejemplos para ayudar a los usuarios de PHP a conocer el uso de esta función.