以下PHP文件创建一个ZIP文件并按预期工作。
<?php
$zip = new ZipArchive();
$ZIP_name = "./path/Prefix_" .$date . ".zip";
if ($zip->open($ZIP_name, ZipArchive::CREATE)!==TRUE) {
exit("There is a ZIP Error");
}
if ($zip->open($ZIP_name, ZipArchive::CREATE)==TRUE) {
echo "ZIP File can be created" . "<br>";
}
foreach($list as $element) {
$path_and_filename = "../path_to_somewhere/product_"
. $element
. ".csv";
$zip->addFile($path_and_filename, basename($path_and_filename));
}
echo "numfiles: " . $zip->numFiles . "\n"; // number of element files
echo "status:" . $zip->status . "\n"; // Status "0" = okay
$zip->close();
?>
只有一个小瑕疵: 上面的foreach循环从数组中检索元素,其中所有元素按字母顺序排序。创建ZIP文件后,ZIP中的文件顺序不同,可能是由不同的文件大小引起的。
以后有没有办法用PHP对ZIP中的csv文件进行排序?我是使用PHP创建ZIP的新手,我没有在文档中找到有用的东西。
答案 0 :(得分:2)
你不能这样做,最好只是在程序中排序文件列表,而不是在文件系统中排序( - ;