Я общался с моим Java-приложением, используя php, создав сокет, с конца Java, я сжимаю результат и записываю эти байты в php.
public static byte[] compressString(byte[] b) throws IOException{
byte[] compressedBytes = null;
ByteArrayOutputStream out = new ByteArrayOutputStream(b.length);
try{
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(b, 0, b.length);
gzip.finish();
gzip.flush();
gzip.close();
compressedBytes = out.toByteArray();
System.out.println("comp1::"+compressedBytes+", length::"+compressedBytes.length);
}finally{
out.close();
}
return compressedBytes;
}
Но когда я выступаю
$data = fgets($fp);
$decompData = gzuncompress($data);
$ decompData возвращается null.
Просьба предоставить решение, как я пробовал Deflater с gzuncompress, gzdecode и всеми возможными вариантами. Здесь, должно быть, чего-то не хватает. Считайте меня новичком в php.
Вам нужно использовать gzdecode()
для потоков gzip, и вам может потребоваться открыть файл с помощью "rb"
для чтения двоичных данных без перевода.