Comprimir un xml

883 views
Skip to first unread message

Juanjo López Mellado

unread,
Nov 5, 2009, 10:37:38 AM11/5/09
to phpbarcelona
Hola grupo.

A ver si alguien ha hecho esto y me puede echar un cable. Estoy haciendo un extractor de
unos datos a xml. El xml generado es muy gordo y tarda bastante tiempo en generarlo.

El resultado final tiene que estar comprimido en formato gzip o cualquier otro más o menos
compatible para todo el mundo (o sea rar, zip y poca cosa más).

La solución obvia es generar el XML y luego comprimirlo, pero tengo el pálpito que si comprimo
al mismo tiempo que genero el xml todo iría mucho más rápido (al fin y al cabo son menos
accesos a disco)

En definitiva, quiero simular en PHP la típica orden en shell:

  generar_xml.php | gzip > output.xml

El XML lo estoy generando con XmlWriter en PHP5.

¿Alguna idea?

Gracias

--
Juanx
Informático de profesión y mejor persona :-D
No tengo "feisbuk", pero sí LinkedIn: http://www.linkedin.com/in/juanx
-- Si te gustan los coches visita mi desactualizado blog http://conplomo.blogspot.com --

Juanjo López Mellado

unread,
Nov 5, 2009, 11:03:05 AM11/5/09
to phpbarcelona
Acabo de encontrar la respuesta, os la posteo por si a alguien le puede interesar.

En el fondo es muy simple: en el openUri de xmlwriter pasarle como URL la
siguiente:

   compress.zlib://NOMBRE_DE_FICHERO.gz

Así de simple era la cosa.

Por cierto, no me ha mejorado el tiempo total :_(

Saludos a todos.

2009/11/5 Juanjo López Mellado <juanjo.lop...@gmail.com>

Stuardo -StR- Rodríguez

unread,
Nov 10, 2009, 4:04:49 PM11/10/09
to phpbar...@googlegroups.com
2009/11/5 Juanjo López Mellado <juanjo.lop...@gmail.com>
Por cierto, no me ha mejorado el tiempo total :_(

Yo votaría por optimizar la generación del archivo.. probablemente por accesos a DBs, o recursos externos.  Podés usar el Zend Profiler para identificar que parte de tu script consume mas tiempo o mas memoria/procesador para identificar cuellos de botella


Reply all
Reply to author
Forward
0 new messages