javascript #php
#javascript #php
Вопрос:
может кто-нибудь сказать мне, почему результат fo base64 дает другой результат для PHP
с помощью Javascript это дает правильный результат
десятичное число 68 98 7 покажет RGIH https://v2.cryptii.com/decimal/base64
javascript десятичный в base64
почему на php я не вижу такого же результата
с помощью этого кода
$x = floatval('68 98 7'); echo base64_encode($x);
покажет Njg =
Спасибо
Ответ №1:
Это связано с тем, что веб-сайт, который вы опубликовали, интерпретирует десятичные дроби не как десятичные дроби, а как десятичные значения для их аналогов ASCII. Если вы хотите выполнить ту же операцию в PHP, вы можете сначала преобразовать десятичную строку в массив, взорвав пробелы, применяя chr
к каждой записи массива, а затем base64 кодирует сжатый массив:
$decimals = '68 98 7';
$chars = array_map(fn($decimal) => chr((int)$decimal), explode(' ',$decimals));
echo base64_encode(implode('', $chars));