Google

Pequeño “hack” PHP

Escrito por Alfonso | 15 de Octubre de 2007 | Categorias: CodeIgniter, PHP | Tiempo de Lectura: 1m 27s | Leido 332 veces.

Pues nada, que programando una aplicación en CI me encontre con un error causado por un “Hook” que gestiona el idioma a mostrar antes que cualquier cosa y al hacerlo envía una cabecera, lo que provocaba un error del tipo “Headers already sent…“.

Para los que no lo sepan, CI es CodeIgniter, un framework de PHP que implementa el modelo MVC y los “Hook” pueden ejecutarse en varias etapas del proceso… el que molestaba se carga en pre_system, es decir, antes que lo demás…

Navegando me encontré con esta nota, (el comentario #5 de Ricardo Niño) que sugiere inicializar el objeto ob_gzhandler de PHP… El dichoso objeto lo que hace es, sito el manual de PHP:

El propósito de ob_gzhandler() es el de ser usado como una llamada de retorno para ob_start(), facilitando el envío de datos codificados mediante gz hacia navegadores web que soportan la gestión de páginas web comprimidas. Antes de que ob_gzhandler() envíe realmente los datos, determina qué tipo de codificación de contenido acepta el navegador (”gzip”, “deflate” o ninguno) y devolverá su salida acordemente. Todos los navegadores son soportados, ya que es tarea del navegador el enviar la cabecera apropiada indicando que acepta páginas web comprimidas.

Por lo tanto, nos permite componer la cabecera “en partes”, ya que retrasa cualquier envió hasta que ha determinado si puede hacerlo comprimido… adicionalmente, ahorraremos un poco de tráfico. La llamada es:

ob_start(”ob_gzhandler”)

Dejar un
Comentario

Nombre

Correo (no será publicado)

Sitio Web

No hay comentarios