问题:
- 我们需要将一个数组序列化为一个短字符串,越短越好。
- 重要性更多地反映在较大的阵列上而不是较小的阵列上。
- 该字符串将在获取请求中使用,因此必须对其进行 url 解码。
当前代码片段
/*
array (size=3)
0 => string '/js/dhdbm78hdfb.js' (length=18)
1 => string '/js/dfg4dg.js' (length=13)
2 => string '/js/fg8hfhrt.js' (length=15)
2 => string '/js/yjtdygj.js' (length=14)
2 => string '/js/2q5g54rvfd.js' (length=17)
*/
$json = json_encode($data);
$gz = gzdeflate($json, 9);
$base64 = base64_encode($gz);
$paths = urlencode($base64);
// outputs: i1aK0c8qjtFPyUhJyjW3yEhJS9LLKlbSgQmnpZukpCOLpKVbZKRlFJUgi1VmlaRUpmchCxkVmqabmhSVpaWARGMB
不是很令人印象深刻而且很慢,我认为应该有更好的方法来做到这一点......
问题
解决这个问题的最佳方法是什么?我们如何呈现尽可能小的字符串?
附言
如果它很慢,这不是最大的问题,但它是一个需要考虑的变量。如果可能,该数组将被散列并从缓存中检索。