Tema: gzip duda
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/11/2010, 18:45
Avatar de emprear
emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: gzip duda

alkohol:
Yo tambien uso xampp, y tanto en xampp como en mi servidor en internet, la compresion se realiza sin problemas, solo necesitas de php y las extensiones zlib, habilitadas, que por defecto asi vienen.

El método que te propuse, justamente no necesita de .htaccess

Cuando escribes php, usas esto
<?php
// codigo
?>

hay una forma abreviada que es

<?
// codigo
?>

lo cual se consigue habilitando en el php la opcion de php_ini
short_open_tag On

El problema con los xml es que su sintáxis utiliza

<?

como para comprimir el xml lo procesamos como php, si el método abreviado está habilitado se crea un conflicto y te genera error.

Poner en off short_open_tag no siempre esta al alcance del usuario, ya que depende de la version de php y de como esté instalado en el Server.

Entonces te repito, el método universal es

<?php
header("Content-Type: text/xml;charset=utf-8");
header("Cache-Control:must-revalidate");
ob_start("ob_gzhandler");
$offset = 60 * 60;
$ExpStr = "Expires:" .
gmdate("D,d M Y H:i:s",time() + $offset) . " GMT";
header($ExpStr);

echo<<<XML
<?xml version="1.0" encoding="UTF-8"?>
<datos>
<!-- el resto de tu xml -->
</datos>
XML;
?>

Ya que de esta manera el <? del xml queda entre un "echo" y php no lo confunde con el <? propio de su sintáxis

Más esplicaciones, serían redundantes.

todo esto no es necesario
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml

Sin embargo eso que pusiste sirve para aclararte otra cuestion, php solo va a comprimir los Mime Type text/* . de ahí que yo use
header("Content-Type: text/xml;charset=utf-8"); Si usas un rss (que basicamente es un xml) pero le pasas application/rss+xml NO te va a funcionar. Solo pásale el Header en el PHP como text/xml, supongo debería funcionar.

con respecto a los Javascript y Css, es bastante similar

sólo dirijete a
http://gzip.emprear.com.ar/
comprueba el funcionamiento y descarga lo que necesites
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.