当编码为base64时,PHP十六进制代码读取为十六进制字符串。

问题描述 投票:0回答:1

我有一个十六进制代码的数组,格式是这样的

FF8FFE00+++++

上面的例子只是一个字符串,其余的60多k长的十六进制代码用+代表(不用霸占你的broswer)。格式看起来就是这样的。所以我们说

$a = 'FFD8FF++++ string';
echo base64_encode($a);

当打印上述内容时,它将十六进制代码作为一个字符串,并从字符串中生成base64,而不是hexdec。

看遍了所有的地方,但似乎有一些转换,使十六进制代码也得到十六进制编码。

在NPP+中,我把字符串转换为ASCII码,然后用base64编码,结果是预期的(base64,我可以用来做图片)。

有什么办法可以让php知道这个字符串实际上是一个十六进制节点,而不是一个字符串?

php base64 hex
1个回答
0
投票

用 "+"表示 hex2bin 你可以将一个包含十六进制的字符串转换为二进制数据(在PHP中存储为一个字符串)。然后将二进制字符串编码为base64格式。

$hex = 'FFD8FF';            // and much more hex values as string as in your example
$bin = hex2bin($hex);       // convert the hex values to binary data stored as a PHP string
$b64 = base64_encode($bin); // this contains the base64 representation of the binary data

string(4) "9j"

© www.soinside.com 2019 - 2024. All rights reserved.