php - 从 Windows 32 位移动到 Linux 64 位,base_convert() 问题

标签 php centos lamp

我正在使用 32 位 php 在 Windows 64 位上工作。使用 base_convert 在我使用 64 位 php 迁移到 Centos 64 位后,会返回不同的结果。例如:

<?php
    $input = 'f00706ff';
    $result  = (int)base_convert($input,16,10);
    echo $result;
?>

在 Win64 PHP32 -> 2147483647 上;

在 CentOS64 PHP64 -> 4026992383;

有什么帮助吗?

最佳答案

您的 Windows 值是错误的,因为您的十六进制值超出了 32 位整数的范围(2147483647 是有符号整数以 10 为底的最大值)并且您运行的是 PHP 的 32 位版本。 Linux结果是正确的:)

另请注意,如果您想在 Windows 上正确执行操作,可以使用 GNU 多精度库,如下所示:$result = gmp_strval( gmp_init('f00706ff', 16), 10 );尽管在 PHP 的 32 位平台上处理大小的整数似乎至少可以说是不愉快的。

关于php - 从 Windows 32 位移动到 Linux 64 位,base_convert() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11480635/

相关文章:

php - 使用爆炸获取值(value)

php - 在外部存储过程中使用 MySQL 变量

php - 如何从php中的文本文件中删除第一行

centos - 在 CENTOS 上安装 JZMQ 错误

php - PDO异常 “could not find driver”

linux - 授予权限后无法导航到 Ubuntu 中的/opt/lampp/htdocs

javascript - php login 将密码存储在 txt 中

linux - 为 perl 安装模块

python - crontab 无法运行 python 脚本

php - 自定义 URL/域(CNAME 别名?)