下面的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-loop 从数组中检索元素,其中所有元素都按字母顺序排序。创建 ZIP 文件后,ZIP 中的文件顺序不同,可能是由不同的文件大小引起的。
以后有没有办法用PHP对ZIP中的csv文件进行排序?我是使用 PHP 创建 ZIP 的新手,我在文档中没有找到有用的东西。
你不能
这样做,最好只是在程序中对文件列表进行排序,而不是在文件系统中排序(-;