windows php 64位系统ATM

时间:2017-01-26 09:32:48

标签: php wamp x86-64 wampserver

我正在使用this php库。它提到了这个:

  

该项目可以在PHP 7,PHP 5.6和HHVM上运行,只支持64位系统ATM。

在带有linux的{​​{1}}主机(cpanel)中可以正常使用。但是在Windows中不起作用。我安装了wamp。在php5.6中,似乎一切正常。有什么我想念的吗? phpinfo()是什么意思?

我的ATM

enter image description here

错误:

phpinfo()

2 个答案:

答案 0 :(得分:2)

他们的API.php包含以下代码:

// Detect 64 bit
if (PHP_INT_SIZE < 8) {
    throw new Exception('MadelineProto supports only 64 bit systems ATM');
}

他们正在做的事情不是检查你是否运行64位版本的PHP,或者如果你的系统是64位,而是你的size字节是什么整数是。 PHP7(当前Windows版本)上的该值可以是4(32位)或8(64位)。在旧版本的PHP中(至少在5.6位版本中为5.6,标记为实验),该值将始终为4。

因此,为了在您的系统上使用该库,您需要:

  • 将PHP版本升级到7
    • 可以找到当前的Windows版本here,您可以尝试仅替换当前的PHP安装或查找...包的更新包。

答案 1 :(得分:1)

发生这种情况,因为库通过检查常量PHP_INT_SIZE来检查64位。当您使用PHP 5.6时,即使在64位系统上,此常量在Windows上始终为4。有关Windows上的此问题,请参阅PHP_INT_SIZE returns 4 But my Operating System Is 64 bit

'问题'可以在API.php around line 29中找到。此检查(但不正确)似乎是the recommended way来检查64位。无论如何,如果他们真的依赖于8位整数,我认为你不能在Windows上用PHP 5.6使用这个库。

PHP 7在Windows上支持64位整数,所以如果你想使用这个库,我认为你应该升级到PHP 7。