protected function retrieveData($url) { if (strpos($url, '.kmz') !== false) { if (!class_exists('ZipArchive')) { throw new KurogoException("class ZipArchive (php-zip) not available"); } $tmpDir = Kurogo::tempDirectory(); if (!is_writable($tmpDir)) { throw new KurogoConfigurationException("Temporary directory {$tmpDir} not available"); } $tmpFile = $tmpDir . '/tmp.kmz'; copy($url, $tmpFile); $zip = new ZipArchive(); $zip->open($tmpFile); $contents = $zip->getFromIndex(0); unlink($tmpFile); return $contents; // this is false on failure, same as file_get_contents } return parent::retrieveData($url); }