PHP:Base64解码将字符串转换为其他格式,如十进制或二进制

时间:2016-12-13 20:41:08

标签: php base64 converter

我正在尝试使用“base64转换”他们的数据然后将其推送到我的服务器的服务。数据分为三种数据类型:字符串,整数和布尔值。为什么他们以这种方式包装它我不明白,但是由我来解读它。

我有一个字符串Qjo0MDk2,它应该转换为B:4096并且PHP的原生base64_decode函数有效!

但是,如果我尝试将AAATmg==转换为基数为10(十进制)的整数值,我想获得5018,但base64_decode只是不给我任何东西。 (我假设因为它试图转换为字符串,而不是基数为10的整数。)

同样,AA==应在base-2(二进制)布尔值中转换为0,而AQ==应转换为1。{/ p>

是否有一组功能可以在某处执行此操作?我无法想象这是新的。这是一个今天就可以使用的网站,但代码未公开:https://conv.darkbyte.ru/

1 个答案:

答案 0 :(得分:4)

不能简单地打印二进制数据,这就是为什么你没有看到来自base64_decode的内容,但数据就在那里。如果您想要实际看到某些内容,则需要将数据转换为十六进制(从技术上讲,转换为十六进制表示)。由于看起来第三方应用程序正在执行此操作(尽管在另一个方向上),因此您必须对所有数据执行此操作。

AA==AQ==的数据表示在if语句中使用时相同,即使它们是0001十六进制-明智的。他们是true - 是PHP的,因此执行if部分。如果您确实想要检查其状态,则必须将它们转换为int(来自十六进制表示)。

(int) bin2hex(base64_decode("AA==")) // int(0)
(int) bin2hex(base64_decode("AQ==")) // int(1)

尝试直接从二进制转换为int将导致int(0)。因此,当您处理来自第三方应用程序的数据时,您必须保持谨慎。