尝试从kml文件创建kmz文件。该脚本上周正在运行,但不知怎的,它停止了工作。我试图通过创建包含.kml文件的.zip文件来解决此问题。
过程如下 1.创建Kml文件 2.添加.zip文件 3.根据名称将kml文件添加到zip中 4. .zip已保存
问题在于,当我打开目录时,.zip包含的内容类似于.kml文件的文件结构,而不仅仅是文件。
例如,如果.kml位于c:/ foldera / folderb中。该zip包含c:/ foldera / folderb / kml。
$zip = new ZipArchive();
$zip_name = $_SERVER['DOCUMENT_ROOT'] .'/assets/kml'. "/r".$r.".zip";
$filename = $_SERVER['DOCUMENT_ROOT'] .'/assets/kml'. "/r".$r.".kml";
$zip->open($zip_name, ZIPARCHIVE::CREATE);
$zip->addFile($filename);
$zip->close();
unlink($_SERVER['DOCUMENT_ROOT'] .'/assets/kml'. "/r".$r.".kml");
答案 0 :(得分:2)
出于某种原因,你有两个addfile:
$zip->addFile($filename, ltrim($filename, '/'));
$zip->addFile($filename);
尝试用这个替换这两行:
$zip->addFile($filename, basename($filename));
basename()
仅返回文件名,删除路径 - http://www.php.net/manual/en/function.basename.php