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