I've been playing around with this and whether it succeeds or not seems to depend on the content of the file. These are all text files I'm testing with and I haven't been able to figure out what it is that breaks it yet. At first I thought that once the file got longer than a particular length it would fail, but that doesn't seem to be the case (at least, I haven't been able to find a tipping point at which a file always fails).
I've hit places where if I changed the file type from Unix to PC (so, LF to CR/LF) it would work / not work (toggling the file contents back and forth had consistently reproducible results).
I've hit places where adding an extra blank line would make it fail and then removing it would make it work again.
Wacky stuff, here.
I'm attaching 3 files, one is my test PHP code that zips and unzips my test file.
The other 2 are versions of the same file, one saved using CR/LF (which fails) and one using just LF (which succeeds).
If anyone is willing to try this on their machine and see if it does the same for them I'd appreciate it.