我正在通过POST将大量文本发送到我的网页上,而这是PHP收到的.大约500kb-1.5 mb.问题在于它是非常重复的数据,我想对其进行压缩.数据看起来像这样,“ 123,123,123,124,124,124,125,126 …等”
我找到了Geoggrey Garside http://cocoadev.com/wiki/NSDataCategory编写的NSData压缩库,其中包含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而不是gzinflate
[编辑]
看来gzdecode仅可用于php5.4(这是我使用gzdecode的版本)
从下面的评论中,我在php5.3上进行了测试,并且可以正常工作
<?php
function gzdecode($data)
{
return gzinflate(substr($data,10,-8));
}
?>