Как преобразовать строку base64 в двоичный массив, используя php - PullRequest
4 голосов
/ 19 сентября 2010

У меня есть строка в кодировке Base 64, которая выглядит примерно так.

cuVrcYvlqYze3OZ8Y5tSqQY205mcquu0GsHkgXe4bPg=

Я пробовал base64_decode и вывод:

råkq‹å©ŒÞÜæ|c›R©6Ó™œªë´Áäw¸lø

Я думаю, что я могу что-то не так делатьЯ ценю любую помощь для преобразования строки base64 в двоичный массив.

Спасибо

Ответы [ 2 ]

5 голосов
/ 19 сентября 2010

как это

$a = base64_decode("cuVrcYvlqYze3OZ8Y5tSqQY205mcquu0GsHkgXe4bPg=");
$b = array();
foreach(str_split($a) as $c)
    $b[] = sprintf("%08b", ord($c));
print_r($b);
0 голосов
/ 20 сентября 2010

Вы уже получаете двоичные данные от base64_decode (если закодированные данные были фактически двоичными), только эти двоичные данные интерпретируются как кодировка для некоторого текста, независимо от того, что вы выводите ( браузер?). Сам вывод «0011010110011001» также будет только текстом, который будет закодирован с использованием некоторого (другого) двоичного потока. Компьютер не работает с 1 и 0 внутри, вопреки распространенному мнению. Если вы хотите визуализировать двоичные данные в форме 1 и 0, вам нужно будет выполнить двоичное / текстовое преобразование самостоятельно. Обычно это довольно бессмысленная вещь.

Вы, вероятно, уже делаете правильные вещи. Ваша ошибка в том, что двоичные данные будут представлены как "0100101010".

...