我有一个 BASE64 字符串的 zip 文件,其中包含一个 XML 文件。
关于如何获取 XML 文件的内容而无需处理磁盘上的文件,有什么想法吗?
我非常希望将整个过程保留在内存中,因为 XML 只有 1-5k。
必须编写 zip、提取 XML、然后加载它并删除所有内容,这会很烦人。
我遇到了类似的问题,最后我手动完成了。
https://www.pkware.com/documents/casestudies/APPNOTE.TXT https://www.pkware.com/documents/casestudies/APPNOTE.TXT
这会提取单个文件(仅第一个文件),没有错误/crc 检查,假设使用了 deflate。
// zip in a string
$data = file_get_contents('test.zip');
// magic
$head = unpack("Vsig/vver/vflag/vmeth/vmodt/vmodd/Vcrc/Vcsize/Vsize/vnamelen/vexlen", substr($data,0,30));
$filename = substr($data,30,$head['namelen']);
$raw = gzinflate(substr($data,30+$head['namelen']+$head['exlen'],$head['csize']));
// first file uncompressed and ready to use
file_put_contents($filename,$raw);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)