我正在压缩数组,如下所示,
\n\n<?php\n $input = array('name'=>'PHP');\n $compressed = gzcompress(serialize($input));\n\n echo '<pre>'; print_r($compressed);\n?>\nRun Code Online (Sandbox Code Playgroud)\n\n它正在打印如下数据
\n\nx\xc5\x93K\xc2\xb42\xc2\xb4\xc2\xaa.\xc2\xb62\xc2\xb1R\xc3\x8aK\xc3\x8cMU\xc2\xb2.\xc2\xb62\xc2\xb6R\n\xc3\xb0P\xc2\xb2\xc2\xaenJ\xc2\xbb\nRun Code Online (Sandbox Code Playgroud)\n\n现在,我想转换$compressed为 json 字符串。由于压缩数据包含特殊字符,它会抛出错误,所以我尝试JSON_UNESCAPED_UNICODE下面是代码片段。
<?php\n // $compressed value getting from above script\n echo json_encode($compressed,JSON_UNESCAPED_UNICODE);\n?>\nRun Code Online (Sandbox Code Playgroud)\n\n但它仍然不起作用。任何人都可以建议如何将压缩数据编码为 json 字符串。
\n小智 5
尝试使用:
$data = base64_encode(gzcompress(serialize($input)));
Run Code Online (Sandbox Code Playgroud)
要恢复回来:
$input = unserialize(gzuncompress(base64_decode($data)));
Run Code Online (Sandbox Code Playgroud)