PHP 和 JS 相互传输压缩字符串
有个小项目,专门PHP和小程序传输像素数据,数据如下
String = "100100FF00AA200300F1F1F1150001F9F9F9"
分解 100100FF00AA 200300F1F1F1 150001F9F9F9
意思 100x100 RGB FF00AA
组成 字符串的只有16进制
参考 LZW算法压缩字符串数据
function LZW_compress(text){
const dict = { 0: '零', 1: '一', 2: '二' }, result = []
let temp = "", UTFCode = 25165 // 汉字笔画较少的区间开始
text.split("").reduce((prev, cur)=>{
const string = prev + cur
if(dict[string]) temp = string;
else{
dict[string] = String.fromCharCode(UTFCode++);
result.push(dict[prev]);
temp = cur.toString();
}
return temp
}, "")
if(temp) result.push(dict[temp]);
return result.join("");
}
现在 有点小蒙圈了 不知道怎么压缩好了,请大家给点算法思路,谢谢大家
后面弄了一版本决绝方案:服务器开压缩
引入 pako 进行 处理:
pako包是一个大包:其中还可以分出 解压和压缩
pako_deflate
和pako_inflate
你从 任意一个JSCDN
服务上都能找到你前端只用到解压缩 只使用
pako_deflate
这个即可,没必要引入pako.min