zipArchive::close() 返回 false 的问题

Issue with zipArchive::close() returning false

所以 zipArhive:: 正在返回 false,我已经尝试了 getStringStatus 并且它正在返回 "no error" 所以我不知道该怎么做...

$fp = fopen($filePath.$fileName, 'w');
$xml = $carXML->asXML();

$zipFileName = date('dmY')."-ebay.zip";

$zip = new ZipArchive();

$r= file_exists($filePath.$fileName);
var_dump($r);
$r = $zip->open($zipFileName, ZipArchive::CREATE);
var_dump($r);

$r = $zip->addFile($filePath.$fileName);
var_dump($r);

$r = $zip->getStatusString();
var_dump($r);

$r = $zip->close();
var_dump($r);

fputs ($fp, $xml);
fclose($fp);

Results:bool(true) bool(true) bool(true) string(8) "No error" bool(false)

您正在打开一个文件进行写入,但在将其添加到 zip 存档时尚未创建。如果在尝试将其添加到 ZipArchive 之前创建 $fp 文件(并关闭它)会发生什么情况?

<?php 

$xmlFileName = $filePath.$fileName;
$fp = fopen($xmlFileName, 'w');
$xml = $carXML->asXML();
fputs ($fp, $xml);
fclose($fp);

$zipFileName = date('dmY')."-ebay.zip";

$zip = new ZipArchive();

$r = $zip->open($zipFileName, ZipArchive::CREATE);
$r = $zip->addFile($xmlFileName);
$r = $zip->close();

var_dump($r);