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

时间:2017-10-03 09:13:20

标签: php ziparchive

所以zipArhive::正在返回false,我已经尝试了getStringStatus并且它正在返回"没有错误"所以我一直坚持做什么......

$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);
  

结果:bool(true)bool(true)bool(true)string(8)"没有错误"布尔(假)

1 个答案:

答案 0 :(得分:0)

您正在打开要写入的文件,但是在您将其添加到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);