首页 > 解决方案 > PHP Decimal to base64 使用 javascript 给出不同的结果

问题描述

有人可以告诉我为什么 fo base64 结果为 PHP 提供不同的结果

使用 Javascript 可以给出正确的结果

十进制 68 98 7 将显示 RGIH https://v2.cryptii.com/decimal/base64 javascript decimal to base64

为什么在 php 上我看不到相同的结果

使用此代码

$x = floatval('68 98 7'); echo base64_encode($x);

将显示 Njg=

谢谢

标签: javascriptphp

解决方案


这是因为您发布的网站不会将小数解释为小数,而是将其解释为 ASCII 对应项的十进制值。如果你想在 PHP 中执行相同的操作,你可以首先将十进制字符串转换为一个数组,方法是在空格上展开,应用于chr数组的每个条目,然后对内爆数组进行 base64 编码:

$decimals = '68 98 7';
$chars = array_map(fn($decimal) => chr((int)$decimal), explode(' ',$decimals));
echo base64_encode(implode('', $chars));

推荐阅读