openの結果が分かり難い
ZIPをopenしようとしたけど、エラーになる。
そこで、結果を出力すると以下の様になってします。
example.php
$zip = new ZipArchive;
$res = $zip->open($filename);
echo 'result: ', $res, "\n";
// result: 1
定数の値が何か分からない
仕方ないので、PHPのドキュメント見に行くと、今度は定数の説明はあるがその定数の値が何か分からない。
結論
マップを作った。
zip_reason.php
<?php
const ZIP_REASON = [
'ER_OK',
'ER_MULTIDISK',
'ER_RENAME',
'ER_CLOSE',
'ER_SEEK',
'ER_READ',
'ER_WRITE',
'ER_CRC',
'ER_ZIPCLOSED',
'ER_NOENT',
'ER_EXISTS',
'ER_OPEN',
'ER_TMPOPEN',
'ER_ZLIB',
'ER_MEMORY',
'ER_CHANGED',
'ER_COMPNOTSUPP',
'ER_EOF',
'ER_INVAL',
'ER_NOZIP',
'ER_INTERNAL',
'ER_INCONS',
'ER_REMOVE',
'ER_DELETED',
];
/**
* Zipのopenのエラーコード名を取得する
* @param {int} $code リザルトコード
* @return string エラー名
*/
function getZipReason($code): string {
return ZIP_REASON[$code] ?? 'undefined';
}
リンクから直接ソース単体をダウンロードできる方法は無いのだろうか…。