/** * @param ods $obj * @param string $file */ function saveOds($obj, $file) { $charset = ini_get('default_charset'); ini_set('default_charset', 'UTF-8'); $tmp = get_tmp_dir(); $uid = uniqid(); mkdir($tmp . '/' . $uid); file_put_contents($tmp . '/' . $uid . '/content.xml', $obj->array2ods()); file_put_contents($tmp . '/' . $uid . '/mimetype', 'application/vnd.oasis.opendocument.spreadsheet'); file_put_contents($tmp . '/' . $uid . '/meta.xml', $obj->getMeta('en-GB')); file_put_contents($tmp . '/' . $uid . '/styles.xml', $obj->getStyle()); file_put_contents($tmp . '/' . $uid . '/settings.xml', $obj->getSettings()); mkdir($tmp . '/' . $uid . '/META-INF/'); mkdir($tmp . '/' . $uid . '/Configurations2/'); mkdir($tmp . '/' . $uid . '/Configurations2/acceleator/'); mkdir($tmp . '/' . $uid . '/Configurations2/images/'); mkdir($tmp . '/' . $uid . '/Configurations2/popupmenu/'); mkdir($tmp . '/' . $uid . '/Configurations2/statusbar/'); mkdir($tmp . '/' . $uid . '/Configurations2/floater/'); mkdir($tmp . '/' . $uid . '/Configurations2/menubar/'); mkdir($tmp . '/' . $uid . '/Configurations2/progressbar/'); mkdir($tmp . '/' . $uid . '/Configurations2/toolbar/'); file_put_contents($tmp . '/' . $uid . '/META-INF/manifest.xml', $obj->getManifest()); shell_exec('cd ' . $tmp . '/' . $uid . ';zip -r ' . escapeshellarg($file) . ' ./'); ini_set('default_charset', $charset); }