PHP Шестнадцатеричный код читается как шестнадцатеричные строки при кодировании в base64 - PullRequest
0 голосов
/ 02 мая 2020

У меня есть массив шестнадцатеричного кода в этом формате

FF8FFE00+++++

Вышеприведенный пример представляет собой всего одну строку, где + представляет остаток шестнадцатеричного кода длиной более 60 КБ (бесполезно использовать ваш броузер) , Формат выглядит именно так. Допустим,

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

При печати выше, он принимает шестнадцатеричный код в виде строки и генерирует base64 из строки вместо hexde c

Посмотрел все, но просто кажется, что есть или преобразования, которые делают шестнадцатеричный код также шестнадцатеричным.

В NPP + я преобразовал строку в ASCII, затем закодировал в base64, и результат был ожидаемым (base64, который я можно использовать для изображения).

Любая идея, как я могу сказать php, что строка на самом деле является шестнадцатеричным узлом, а не строкой?

1 Ответ

0 голосов
/ 03 мая 2020

С помощью 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 /"

...