ZipArchive 生成​​临时文件但不写入内容且未给出错误

ZipArchive generating temp files but not writing content and no error given

我正在使用 PHPExcel 生成 Excel 文件,但它不起作用。我已经调试到这段代码:

$objZip = new ZipArchive();

$ro = new ReflectionObject($objZip);
$zipOverWrite = $ro->getConstant('OVERWRITE');
$zipCreate = $ro->getConstant('CREATE');

// Try opening the ZIP file
// Debug result: both open() return true here
if ($objZip->open($pFilename, $zipOverWrite) !== true) {
    if ($objZip->open($pFilename, $zipCreate) !== true) {
        throw new PHPExcel_Writer_Exception("Could not open " . $pFilename . " for writing.");
    }
}

// Debug result: $objZip->close() would return true here

// Add [Content_Types].xml to ZIP file
// Debug result: it stops running on this line, no errors or exceptions
$objZip->addFromString('[Content_Types].xml', ...);

$objZip->addFromString() 在目录中生成临时文件,但似乎无法以某种方式写入这些文件,因为它们是空的:

-rw-------. 1 www1 www1 0 Mar 27 15:21 test_output_20170327.xlsx.0BRqEn
-rw-------. 1 www1 www1 0 Mar 27 15:21 test_output_20170327.xlsx.3Hbl1n
-rw-------. 1 www1 www1 0 Mar 27 15:21 test_output_20170327.xlsx.5otErm
...

大概是权限问题,但是 PHP 用户 www1 在目录中具有写入权限,并且 fwrite() 在我尝试的这些临时文件上运行良好。 PHP 版本是 5.4.16.

有什么想法吗?

原来是 PHP 更新中的问题。通过重新启动网络服务器解决。