Hallo esto en un script pequeño de PHP:
<?php ob_start();
CODIGO
ob_end_flush() ?>
Para que sirve eso?
| |||
Bueno .. la explicación del "concepto" en sí de esas funciones lo tienes en castellano: http://www.php.net/manual/es/ref.outcontrol.php Las funciones que comentas .. ob_start() inicia la "captura" del buffer de salida de PHP . y ob_end_flush() termina la captura del buffer de salida y como es un "flush" además lo entrega a la salida (por qué hay otras funciones que sólo "terminan" la captura pero no hacen nada más ... útil en otros casos). Cuando hablo de "buffer de salida" será todo lo que ese "CODIGO" o llamada a una página .. etc proboque como salida (un echo "algo" .. o HTML directo .. etc ..) Un saludo, |
| |||
Un ejemplo típico del uso del control del buffer podría ser el de evitar que te dé un error el uso de header() o setcookie() cuando has enviado ya HTML (salida en general) al navegador. A mi en lo personal no me gusta este uso del control del buffer de salida .. Como "buffer" que es, se almacena temporalente en algún sitio .. así que es un consumo extra de recursos para el servidor para una taréa que se solventa "ordenando" el código de otra forma. Otro caso: Tienes una pagína remota que muestra cierta información (ejemplo .. cotizaciones de cambio de moneda de un banco) .. necesitas esos datos, pero no la página que los "adorna" y muestra en sí. Vía estas funciones .. llamarías a esa página y capturarías su resultado (el HTML de esta/etc) para filtrarlo (ya lo tendrías en una variable) y obtener sólo lo que te interesa. Finalmente descartarías eso que capturases (usando ob_end_clean() ..o similar) y aprovechas tu dato ya filtrado en el código/presentación habitual que hagas ... Un saludo, |