PHP压缩文件

PHP压缩文件,php,kohana-3,Php,Kohana 3,正在尝试从kml文件创建kmz文件。这个脚本上周还在运行,但不知怎的它停止了工作。我试图通过创建一个包含.kml文件的.zip文件来解决此问题 过程如下 1.Kml文件已创建 2.添加了zip文件 3.kml文件根据名称添加到zip 4.zip已保存 问题是,当我打开目录时,.zip包含的看起来像.kml文件的文件结构,而不仅仅是文件 例如,如果.kml在c:/foldera/folderb中。拉链将包含c:/foldera/folderb/kml $zip = new ZipArchive()

正在尝试从kml文件创建kmz文件。这个脚本上周还在运行,但不知怎的它停止了工作。我试图通过创建一个包含.kml文件的.zip文件来解决此问题

过程如下 1.Kml文件已创建 2.添加了zip文件 3.kml文件根据名称添加到zip 4.zip已保存

问题是,当我打开目录时,.zip包含的看起来像.kml文件的文件结构,而不仅仅是文件

例如,如果.kml在c:/foldera/folderb中。拉链将包含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");

出于某些原因,您有两个addfile:

$zip->addFile($filename, ltrim($filename, '/'));
$zip->addFile($filename);
尝试用以下内容替换这两行:

 $zip->addFile($filename, basename($filename));
basename()
仅返回文件名,删除路径-