Search code examples
phpxmlgzipxmlreader

PHP open gzipped XML


I am struggling to read gzipped xml files in php.

I did succeed in reading normal xml files, using XMLReader() like this:

$xml = new XMLReader();
$xml->open($linkToXmlFile);

However, this does not work when the xml file is gzipped. How can I unzip the file and read it with the XMLReader?


Solution

  • As you didn't specify a PHP version, I am going to assume you are using PHP5.

    I am wondering why people haven't suggested using the built in PHP compression streams API.

    $linkToXmlFile = "compress.zlib:///path/to/xml/file.gz";
    $xml = new XMLReader();
    $xml->open($linkToXmlFile);
    

    From what I understand, under the covers, it will transparently decompress the file for you and allow you to read it as if were a plain xml file. Now, that may be a gross understatement.