繁体   English   中英

来自文件的PHP zip

[英]PHP zip from file

尝试从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()只返回文件名,去掉路径- http://www.php.net/manual/en/function.basename.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM