为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 无法通过 Golang 解压缩 gzip 数据

PHP 无法通过 Golang 解压缩 gzip 数据

Go
红颜莎娜 2021-10-25 19:56:44
为什么在我的 PHP 演示中无法通过 Go 解压 gzip 数据,但是 PHP gzip data to Go 却成功了?我需要从 Go to PHP API 服务发布 gzip JSON 数据。测试结果 -> |  php   |  go ---------------------php |  ok    |  okgo  |  fail  |  okPHP代码class GzipDemo{    public function gzen($data, $file){       $json_data = json_encode($data);       $gz_data = gzencode($json_data,9);       file_put_contents($file,$gz_data);    }    public function gzdn($file){       $data = file_get_contents($file);        $unpacked = gzdecode($data);        if ($unpacked === FALSE)        {            print("failed:".$file."\n");        }else{             print($file. " result Data :".$unpacked ."\n");        }    }}$demo = new GzipDemo();$file="phpgzip.txt";$demo->gzen("data",$file);$demo->gzdn($file);$demo->gzdn("gogzip.txt");这样的结果:PHP 到 PHP 还行。转到 PHP 失败。去代码package mainimport (    "bytes"    "compress/gzip"    "encoding/json"    "fmt"    "io/ioutil"    "os")func main() {    gzen("data", "gogzip.txt")    gden("gogzip.txt")    gden("phpgzip.txt")}func gzen(data string, file string) {    b, _ := json.Marshal(data)    buffer := new(bytes.Buffer)    w, _ := gzip.NewWriterLevel(buffer, gzip.BestCompression)    defer w.Close()    w.Write(b)    w.Flush()    ioutil.WriteFile(file, buffer.Bytes(), os.ModePerm)}func gden(file string) {    b, _ := ioutil.ReadFile(file)    buffer := new(bytes.Buffer)    buffer.Write(b)    r, _ := gzip.NewReader(buffer)    defer r.close()    data, _ := ioutil.ReadAll(r)    fmt.Println(file, " result Data:", string(data))}这个结果:Go to Go就可以了。PHP 去就好了。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 234 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信