PHP:按字母顺序排序ZIP

时间:2017-10-24 08:20:46

标签: php sorting 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循环从数组中检索元素,其中所有元素按字母顺序排序。创建ZIP文件后,ZIP中的文件顺序不同,可能是由不同的文件大小引起的。

以后有没有办法用PHP对ZIP中的csv文件进行排序?我是使用PHP创建ZIP的新手,我没有在文档中找到有用的东西。

1 个答案:

答案 0 :(得分:2)

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