你可以尝试组合使用gzdeflate http://php.net/gzdeflate (raw deflate格式)来压缩您的数据并base64_encode http://php.net/base64_encode仅使用那些无需百分比编码允许的字符(另外交换字符+
and /
by -
and _
):
$output = rtrim(strtr(base64_encode(gzdeflate($input, 9)), '+/', '-_'), '=');
反之亦然:
$output = gzinflate(base64_decode(strtr($input, '-_', '+/')));
这是一个例子:
$input = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
// percent-encoding on plain text
var_dump(urlencode($input));
// deflated input
$output = rtrim(strtr(base64_encode(gzdeflate($input, 9)), '+/', '-_'), '=');
var_dump($output);
在这种情况下,节省的费用约为 23%。但此压缩过程的实际效率取决于您所使用的数据。