PHP:按字母顺序对 ZIP 进行排序



下面的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 的新手,我在文档中没有找到有用的东西。

你不能

这样做,最好只是在程序中对文件列表进行排序,而不是在文件系统中排序(-;

最新更新