iOS gzip Compression to PHP


iOS gzip Compression to PHP

我通过 PHP 收到的 POST 向我的网页发送了大量文本。它大约是 500kb - 1.5 mb。这样做的问题是,这是非常重复的数据,我想压缩它。数据如下所示,"123,123,123,124,124,124,125,126...等等"

我找到了Geoggrey Garside http://cocoadev.com/wiki/NSDataCategory 的NSData + Compression Library,其中包含方法gzipInflate和gzipDeflate,并且已经获得了gzipInflate方法,可以从服务器正确解压缩数据,但是我一生都无法弄清楚如何在iOS中压缩字符串并将其发送到服务器以通过PHP解压缩。

这是我的iOS代码:

NSData* uncompressedStringData = [@"test" dataUsingEncoding:NSUTF8StringEncoding];
NSData* compressedData = [uncompressedStringData gzipDeflate];
ASIFormDataRequest * request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"myserver"]];
[request setPostValue:@compressedData forKey:@"1"];
...more code to deal with sending the request.. etc...

这是我的PHP代码:

echo gzinflate($_POST['1']);

我从服务器得到的只是

Warning: gzinflate() data error

任何帮助将不胜感激!

尝试 gzdecode 而不是 gzinfexpand

[编辑]
看起来 gzdecode 只能从 php5.4 获得(这是我使用 gzdecode 的版本)

从下面的评论中,我在 php5.3 上对其进行了测试,它有效

<?php 
function gzdecode($data) 
{ 
    return gzinflate(substr($data,10,-8)); 
} 
?>