3

我正在通过 PHP 接收的 POST 向我的网页发送大量文本。它大约是 500kb - 1.5 mb。问题在于它是非常重复的数据,我想压缩它。数据看起来像这样,“123,123,123,124,124,124,125,126...等”

我找到了 Geoggrey Garside http://cocoadev.com/wiki/NSDataCategory的 NSData+Compression 库,其中包含 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

任何帮助将非常感激!

4

1 回答 1

3

尝试gzdecode而不是 gzinflate

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

从我得到以下的评论中,我在 php5.3 上对其进行了测试并且它有效

<?php 
function gzdecode($data) 
{ 
    return gzinflate(substr($data,10,-8)); 
} 
?> 
于 2012-07-04T20:34:48.453 回答