如何将PHP字符串安全编码为仅包含字母数字的字符串?
例如,“Hey123 & 5”可以变成“ed9e0333”或者其他更好看的字符串。
这不是关于去掉字符,而是关于编码。
目标是使任何经过此编码后的字符串适用于css id字符串(字母数字),
但稍后我需要解码它并获取原始字符串。
bin2hex
看起来符合要求(虽然不如其他编码紧凑)。另外要注意,CSS id 不能以数字开头,所以在最终 ID 前,你需要在 bin2hex
结果前加上前缀。hex2bin
,但 PHP 文档网站上有人提出了以下建议(未经测试):$bin_str = pack("H*" , $hex_str);
您可以使用BASE64编码
这个线程已经很久没有人回复了,但是我正在寻找解决这个问题并找到了这个线程的方法,也许有人会发现这个简单的答案很有用。
我的解决方案是:
str_replace('=', '_', base64_encode($data));
+
和/
,所以这个解决方案并不是100%正确的。 - vim=
- Wraith