2011-01-06 20 views
8

¿Cuáles son los métodos para activar el almacenamiento en búfer de salida dentro de un script PHP o usando el archivo htaccess?PHP Output Buffering

uso el método siguiente en un archivo .htaccess en la raíz de mi solicitud:

php_value output_buffering On 
php_value output_handler mb_output_handler 

En una de mis cuentas de alojamiento compartido (Alojamiento Linux 5.2.x con PHP), el anterior produce una página en blanco . El soporte técnico dice que no pueden activarlo en el archivo php.ini pero puedo activarlo en mi script ...

ob_start() y ob_end_flush() también produce el mismo resultado. ¿Que puedo hacer?

+1

Si obtiene páginas en blanco, consulte el 'error.log'. ¿Estableciste una [codificación de salida] (http://php.net/manual/en/function.mb-output-handler.php) antes de activar el mb_output_handler? – mario

+0

Publica el código real. – profitphp

+0

@mario, no, no sabía que tenía que hacerlo. ¿Cómo puedo hacer eso? –

Respuesta

6

Utilice ob_start() y ob_end_flush().

ob_start() al comienzo de la secuencia de comandos antes de cualquier salida (ni siquiera un espacio vacío).

Cuando desee imprimir utilice ob_end_flush().

+2

2da vez he visto esto hoy. Puede activar el almacenamiento en memoria tampón de salida DESPUÉS o ANTES de imprimir el contenido. No hace ninguna diferencia. URuKl – profitphp

+0

Claro que hace la diferencia. Si imprime algo sin el búfer de salida activado, realmente saldrá. –

+0

@klinky No estaba tratando de demostrar ob, estaba demostrando que puede llamarlo en cualquier punto, no solo en el inicio antes de cualquier salida, como predrag.music dijo. – profitphp

2

Compruebe su archivo PHP.ini y asegúrese de que el búfer de salida esté habilitado.

Después de eso, puede usar ob_start() siempre que quiera comenzar a almacenar en búfer y ob_flush() para vaciar el búfer cada vez que desee detener el almacenamiento en búfer.

+0

disculpen, alojamiento compartido: no hay acceso al archivo php.ini ....! –

+1

Si usa cP anel (la mayoría de los hosts lo hacen), existe una opción para cambiar las configuraciones de php.ini. – user509006

+1

FYI Scott, utilizo hostmonster.com, que es alojamiento compartido, y aún puedo editar mi propio archivo php.ini. – justinl