第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

PHP編碼gzdeflate與Golang解碼DEFLATE

標(biāo)簽:
PHP

8月7日@黄同学找我问:“数据存到redis是gzdeflate压缩过的数据,golang从redis取出来,解压缩失败”。很多从PHP转Golang的业务经常会遇到,所以写下这篇博文,希望可以帮助更多人。
想要使用golang解码php的编码,那么就应该需要知道gzdeflate函数的算法是什么,先到gzdeflate文档,查看了一下发现:
gzdeflate使用的是纯粹的DEFLATE格式。这就与golang的compress/flate包一致了。有了了解就可以看着golang文档实现代码了。遂与@黄同学同学写了几个函数进行验证,最后定稿如下:

package mainimport (	"strings"	"fmt"	"compress/flate"	"bytes"	"io/ioutil")func main() {	str:="huangyupeng123"	b:=Gzdeflate(str,-1)	ss:=Gzencode(string(b))	fmt.Println(ss)	/*str:="huangyupeng123"	ss:=Gzdeflate(str,0)	fmt.Println(ss)	s=Gzencode(ss)	fmt.Println(s)*/}// 解码func Gzencode(data string) string  {	r :=flate.NewReader(strings.NewReader(data))	defer r.Close()	out, err := ioutil.ReadAll(r)	if err !=nil {		fmt.Errorf("%s\n",err)	}	return string(out)}// 编码func Gzdeflate(data string,level int) []byte  {	var bufs bytes.Buffer	w,_ :=flate.NewWriter(&bufs,level)	w.Write([]byte(data))	w.Flush()	w.Close()	return bufs.Bytes()}// 编码func GzdeflateForString(data string,level int) string  {	var bufs bytes.Buffer	w,_ :=flate.NewWriter(&bufs,level)	w.Write([]byte(data))	w.Flush()	defer w.Close()	return bufs.String()}



點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消