技術

PHPのZipArchiveでopenした際ファイルが作成されていないのにエラーを返してくれないよ

Pocket

PHPのZipArchiveでopenした際ファイルが作成されていないのにエラーを返してくれないのです。
PHP 5.6.32での出来事でした。

ごく一般的なzipの作成手順です。

乱暴な例なのでzipのpathの場所については深く考えずにいきます。
まずこちらのプログラムのカレントディレクトリにwriteの権限がない状態でこれを動かすと、当然zipファイルは作成されていません。
希望としてはis_openの時点で作成できなかったよ〜となってほしいのですが、エラーがでずに進みます。
作成後に$zipのstatusを確認しても「0」(No Error)です。

なんとこのままaddFileもできるけど、$zip->closeではエラーが返ってくる。
実体がないからだと思うけど、falseが返ってくるだけなので何がいけないってことなのかしらね。
このへんを見ると挙動が理解できそうなのですが・・・。

https://github.com/php/php-src/blob/master/ext/zip/lib/zip_open.c
https://github.com/php/php-src/blob/master/ext/zip/lib/zip_close.c
Cとは触れ合ってこなかったのですが、これを機に・・・いや・・・。

Pocket

mm

作成者: ぴーやま

なんとかエンジニア。忘れっぽいのでブログにメモをしている。
最近、一番好きな食べ物は汁物に浮いているたまごなんじゃないかなぁと思ってきた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です