如果在 PHP 8.0+ 上,您可以使用匹配表达式来解码状态代码
<?php
$archive = new \ZipArchive();
$result = $archive->open('some.file.zip');
$message = match ($result) {
\ZipArchive::ER_MULTIDISK => '不支持多磁盘 zip 存档',
\ZipArchive::ER_RENAME => '重命名临时文件失败',
\ZipArchive::ER_CLOSE => '关闭 zip 存档失败',
\ZipArchive::ER_SEEK => '查找错误',
\ZipArchive::ER_READ => '读取错误',
\ZipArchive::ER_WRITE => '写入错误',
\ZipArchive::ER_CRC => 'CRC 错误',
\ZipArchive::ER_ZIPCLOSED => '包含的 zip 存档已关闭',
\ZipArchive::ER_NOENT => '没有此文件',
\ZipArchive::ER_EXISTS => '文件已存在',
\ZipArchive::ER_OPEN => '无法打开文件',
\ZipArchive::ER_TMPOPEN => '无法创建临时文件',
\ZipArchive::ER_ZLIB => 'Zlib 错误',
\ZipArchive::ER_MEMORY => '内存分配失败',
\ZipArchive::ER_CHANGED => '条目已更改',
\ZipArchive::ER_COMPNOTSUPP => '不支持的压缩方法',
\ZipArchive::ER_EOF => '文件过早结束',
\ZipArchive::ER_INVAL => '无效参数',
\ZipArchive::ER_NOZIP => '不是 Zip 存档',
\ZipArchive::ER_INTERNAL => '内部错误',
\ZipArchive::ER_INCONS => 'Zip 存档不一致',
\ZipArchive::ER_REMOVE => '无法删除文件',
\ZipArchive::ER_DELETED => '条目已删除',
default => '没有错误',
};
?>