3
我正在通過POST發送大量文本到我的網頁上,由PHP接收。它大約500kb - 1.5 MB。這個問題是,它是非常重複的數據,我想壓縮它。數據是這樣的,「123,123,123,124,124,124,125,126 ...等」iOS gzip壓縮到PHP
我發現NSData的+壓縮庫由Geoggrey加塞德http://cocoadev.com/wiki/NSDataCategory包含方法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
任何幫助,將不勝感激!
在當前的php版本中可能還沒有。在評論中的替代實現,或通過upgradephp。 – mario
我不得不在iOS中使用base64編碼對字符串進行編碼,然後發送該字符串,然後在php中base64_decode然後應用您的gzdecode函數,但是謝謝! – user1492744
gzdecode很棒 – malhal