我正在使用ZipArchive的addEmptyDir/addFile方法在循环中将文件添加到ZIP文件,并测量当前时间。目前,代码中的相关部分如下所示:
$zip = new ZipArchive();
if (!$zip->open($inProgressZipName, ZIPARCHIVE::CREATE)) {
return array(
"result" => "error"
);
}
echo "start time=" . time() . "\n";
foreach ($list as $filePath) {
echo "loop time=" . time() . "\n";
$file = utf8_decode($filePath);
$zip->addFile($file, str_replace($path . '/', '', $file));
}
echo "end time=" . time() . "\n";
$zip->close();
我得到了一个非常错误的输出:
start time=1666532175
loop time=1666532175
loop time=1666532175
.
.
loop time=1666532175
loop time=1666532175
end time=1666532175
如果我将代码改为使用EXEC命令,如下所示:
$zip = new ZipArchive();
if (!$zip->open($inProgressZipName, ZIPARCHIVE::CREATE)) {
return array(
"result" => "error"
);
}
echo "start time=" . exec("date +%s") . "\n"; // exec() instead of time()
foreach ($list as $filePath) {
echo "loop time=" . exec("date +%s") . "\n"; // exec() instead of time()
$file = utf8_decode($filePath);
$zip->addFile($file, str_replace($path . '/', '', $file));
}
echo "end time=" . exec("date +%s") . "\n"; // exec() instead of time()
$zip->close();
我得到了如下正确的输入:
1666532505
loop time=1666532505
loop time=1666532505
.
.
loop time=1666532506
loop time=1666532506
.
.
loop time=1666532606
end time=1666532606
正如你可能知道的,我不能使用exec,因为这段代码将存在于WordPress插件中,所以...这是怎么回事?
1条答案
按热度按时间ut6juiuv1#
我以前也遇到过同样的问题。请尝试改用PharData