gz komprimierte XML Daten einlesen

deostift

Erfahrenes Mitglied
Hallo zusammen,

auf dem Server liegen gzip komprimierte XML Files (z.B. data.xml.gz).

Ich bin mir nun nicht so ganz sicher, wie ich diese nun am besten verarbeiten soll, um sie in eine MySQL Datenbank einzulesen:

a.) in ein neues temporäres files entpacken und dieses dann verarbeiten?

oder

b.) mit z.B. mit gzread($file_handle, 10000000) verarbeiten? Die 10000000 deshalb, weil ich bisher noch nix gefunden habe wie ich die filesize einer komprimierten Datei schnell bestimmen kann ...


Ich bin im Moment für Version a.) weil es bei durchschnittlichen Filegrößen von ca. 200 kB doch recht schnell gehen müsste.. oder ist das entpacken in eine temporäre Datei doch nicht der beste Weg .. was meint ihr..

Danke Euch und Gruß, Mikk
 
Nein, weil ich ein Array nicht mit dem XML Reader verarbeiten kann.

Leider geht auch nicht die Variante des temp. Files, da ich auf dem System keine Berechtigungen hierzu habe -.-

Gibt es denn keine Möglichkeit in der Funktion XMLReader->open() das gzip File einzusetzen :( ?!
 
PHP:
<?php
function gzfile_get_contents($filename, $use_include_path = 0)
{
    //File does not exist
    if( !@file_exists($filename) )
    {    return false;    }
   
    //Read and imploding the array to produce a one line string
   $data = gzfile($filename, $use_include_path);
   $data = implode($data);
   return $data;
}
?>

Und das hier? Somit hättest du alles in einem String und solltest es wie gewohnt verarbeiten können.

Statt XMLReader->open() kannst du ja auch einfach XMLReader->XML() benutzen.
 
Zuletzt bearbeitet:
Zurück