我有一个PHP数组,其中包含字节,实际字节代表一个ZIP文件(该ZIP文件中包含多个文件)。
这是从第三方API返回的,所以我别无选择,只能使用这种格式。
因此,我正在尝试将其转换为ZIP文件。
API返回的字节数组示例:
[bytes] => Array
(
[0] => 37
[1] => 80
[2] => 68
[3] => 70
[4] => 45
[5] => 49
[6] => -46
... continues to close to 20,000
)
我尝试通过创建完整的字节字符串并调整浏览器标头来简单地让浏览器返回它...使用:
foreach($bytes as $byte)
{
$byteString .= $byte;
}
header("Content-type: application/zip");
header("Content-Disposition: inline; filename='test.zip'");
echo $byteString;
这确实会创建一个zip文件,但是它无效/损坏。
我也尝试过在Stackoverflow的其他地方找到的方法:
$fp = fopen('/myfile.zip', 'wb+');
while(!empty($bytes)) {
$byte1 = array_shift($bytes);
$byte2 = array_shift($bytes);
if(!$byte2) {
$byte2 = 0;
}
fwrite($fp, pack("n*", ($byte1 << 8) + $byte2));
}
close($fp);
但是,再次创建了ZIP,但它无效/已损坏。
任何指针,最赞赏。
谢谢
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句