gpt4 book ai didi

php - 从 ZIP 字符串中提取文件

转载 作者:IT王子 更新时间:2023-10-28 23:57:37 35 4
gpt4 key购买 nike

我有一个包含一个 XML 文件的 zip 文件的 BASE64 字符串。

关于如何在不处理磁盘上的文件的情况下获取 XML 文件的内容有什么想法吗?

我非常希望将整个过程保存在内存中,因为 XML 只有 1-5k。

如果必须编写 zip、提取 XML,然后加载并删除所有内容,那会很烦人。

最佳答案

我遇到了类似的问题,我最终手动完成了。
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);

关于php - 从 ZIP 字符串中提取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140063/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com