PHP压缩文件

时间:2014-07-08 18:56:12

标签: php kohana-3

尝试从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");

1 个答案:

答案 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