如何修剪Base-64编码的字符串?

mat*_*att 1 php base64

我不是一个PHP专家.我正在编码一个URL base64_encode.我得到了一个很长的编码字符串,其中包含许多奇怪的字符,正如我想要的那样.有没有办法修剪这一长串字符让我们说10或15个字符,所以我可以再次解码它?

我知道有,trim()但这并不是我想要的.我想要一个长编码的字符串相当短,后来我想再次解码它.

有任何想法吗?

Pek*_*ica 8

在不丢失某些数据的情况下,不可能"缩短"任何字符串.

  • 如果要在物理上缩短编码字符串(最终结果只是该字符串的一部分),请应用substr()不要编码版本:您需要先解码它,然后重新编码缩短版本.

  • 另一种选择是压缩字符串.这可能会稍微缩短一下:查看gzcompress().但是,您的里程可能会有所不同:压缩率取决于您拥有的数据类型.使用小输入字符串,结果甚至可能比原始字符串大.

  • 如果要在多页面进程中重用变量,并且不想通过链接或表单传输它,请考虑生成一个短随机密钥,并将数据存储在用户的会话中:

    $_SESSION[$randomKey] = "lllloooooooooooong data here";
    
    Run Code Online (Sandbox Code Playgroud)

    您可以传递随机密钥,并始终使用"长"数据$_SESSION[$randomKey].您需要为此初始化会话.