是否有任何PHP函数将字符串编码为int值,稍后我可以将其解码回没有任何键的字符串?
答案 0 :(得分:5)
当然,您可以convert strings to numbers,反之亦然。考虑:
$a = "" + 1
gettype($a) // integer
$b = "$a"
gettype($b) // string
您也可以type casting与settype()进行对比。
如果我误解了你并想要编码任意字符串,请考虑使用base64_encode()和bas64_decode()。如果要将基本64字符串表示转换为基数为10的整数,只需使用base_convert()。
答案 1 :(得分:2)
int取决于平台有4或8个字节,字符串中的每个字符都是一个字节(或多个取决于编码)。因此,您只能将非常小的字符串编码为整数,这基本上可以回答您的问题:否。
你想要完成什么?
答案 2 :(得分:1)
我怀疑没有,因为在MAX_INT中有更多可能的字符串组合而不是整数。
它必须是整数吗?
答案 3 :(得分:1)
我确信你认为你想做的事情并不是你想要做的。 :-)这听起来像是一个愚蠢的想法。正如另一位用户之前问过的那样:)您需要这个吗?你的意图是什么?
现在您提到数字和a-z字母是可以接受的,那么我有一个建议,您可以循环显示单个字母的序数值并将其显示为两位十六进制。然后,您可以将这些十六进制转换回单个字符的序数值。不知道你要编码什么样的字符,可能你需要每个字母使用4个字符(例如字符串Peter
将成为00700065007400650072)嗯......玩得开心,我还是不要我真的看到了做你正在做的事情的理由。
答案 4 :(得分:1)
通过单个字母'序数值,并将其显示为两位十六进制。然后,您可以将这些十六进制转换回单个字符的序数值。不知道你要编码什么样的字符,可能你需要每个字母使用4个字符(例如字符串彼得会变成00700065007400650072)嗯...玩得开心,我还是没有真正看到
答案 5 :(得分:1)
PHP没有功能,但我最近写了一个类来加密和解密PHP中的字符串。您可以在https://github.com/Lars-/PHP-Security-class
查看