如何解压php中的数据和js中使用pako.deflate的数据。

问题描述 投票:0回答:1

我用的是 pako.deflate 来压缩javascript中的数据,像这样。

js file:

const params = [{id: 5, name: '张三', list: [{code: '10010', type: 'media'}]},{id: 6, name: '李四', list: [{code: '20010', type: 'site'}]}]

let binaryString = pako.deflate(JSON.stringify(params), { to: 'string' })

http.post({data: binaryString})...

而在网络服务器上,我需要用PHP来解压这些数据。

我是这样做的

php file:

$data = $params['data']; // got the right post data

$res = gzinflate(base64_decode($data));

echo $res; //echo false

不过 $res 回响 false

我缺少什么?

php compression deflate inflate pako
1个回答
0
投票

你在服务器上进行了base 64解码--在发布数据之前,你是否在客户端进行了base64编码?在发布的代码中没有任何迹象表明这是发生的。

我怀疑您很可能发送了一个放气的utf-8字符串作为您的数据,然后试图对一个包含有一个 遥远的 更大范围的角色。

也许看看什么角色 $params['data'] 包含--如果其中任何一个超出了base64的范围(是 a-z,A-Z, 0-9, +, /,也可能是尾部的 =)那么我想这就是问题所在。

那么你可以尝试简单地将这一行改为。

$res = gzinflate($data);
© www.soinside.com 2019 - 2024. All rights reserved.