序列化一个数组并压缩字符串以在URL中使用它

sup*_*ero 6 php compression serialization

问题:

  • 我们需要将数组串行化为短字符串,越短越好.
  • 重要性更多地反映在较大的阵列上而不是较小的阵列上.
  • 该字符串将在get请求中使用,因此必须对其进行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
Run Code Online (Sandbox Code Playgroud)

不是很令人印象深刻而且非常缓慢,我认为应该有更好的方法来做到这一点......

解决这个问题的最佳方法是什么?我们怎样才能呈现最小的弦?

PS

如果它很慢,这不是最大的问题,但它是一个需要考虑的变量.在可能的情况下,将对数组进行哈希处理并从缓存中重新获取.