addToXML($xml->addChild($k)); } else $xml->addChild($k, $v); } function genSave() { header("Content-Type: application/xml"); $save = new SimpleXMLElement(""); array_walk_recursive($_SESSION, "genXML", $save); return $save; echo $save->asXML(); } function genFilename() { return "craftmine-".date("d-m-Y_H-i-s").".save.xml"; } function saveGame() { $save = genSave(); if($save->asXML(SAVEDIR."/".genFilename())) sendInfo("gamesave_ok"); else sendError("gamesave_error"); } function downSave() { $save = genSave(); header("Content-Type: application/xml"); header("Content-Disposition: attachment; filename=".genFilename()); header("Pragma: no-cache"); echo $save->asXML(); } ?>