有个需求,要把java代码里面的jzip压缩方法还原成php
java jzip压缩代码如下
public static byte[] gZip(byte[] data) {
byte[] b = null;
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(bos);
gzip.write(data);
gzip.finish();
gzip.close();
b = bos.toByteArray();
bos.close();
} catch (Exception ex) {
ex.printStackTrace();
}
return b;
}
php代码
class {
public static function myGzencode($str){
$res = gzencode($str);
$res = self::getBytes($res);
$res[9] = 0; //这步完全是为了和java压缩后的头部保持一致,也许是个坑
return $res;
}
public static function getBytes($str) {
$len = strlen($str);
$bytes = array();
for($i=0;$i
if(ord($str[$i]) >= 128){
$byte = ord($str[$i]) - 256;
}else{
$byte = ord($str[$i]);
}
$bytes[] = $byte ;
}
return $bytes;
}
}
ps:https://tools.ietf.org/html/rfc1952#section-2.2
同学给推荐了这边文章,如下内容
0 - FAT filesystem (MS-DOS, OS/2, NT/Win32)
1 - Amiga
2 - VMS (or OpenVMS)
3 - Unix
4 - VM/CMS
5 - Atari TOS
6 - HPFS filesystem (OS/2, NT)
7 - Macintosh
8 - Z-System
9 - CP/M
10 - TOPS-20
11 - NTFS filesystem (NT)
12 - QDOS
13 - Acorn RISCOS
255 - unknown
我压缩后转换成byte数组,第九位是11,java那边是0,可能我的文件系统是NTFS filesystem (NT),java可能是FAT filesystem (MS-DOS, OS/2, NT/Win32)
分类:
程序积累
/
浏览量: 1722
2017-1-5 17:52 Thursday
昵称
邮件地址 (选填)
个人主页 (选填)
评论内容
发表评论
send