Search code examples
phpwampx86-64wampserver

windows php 64 bit systems ATM


I'm using this php library. It mentiones this:

This project can run on PHP 7, PHP 5.6 and HHVM, only 64 bit systems are supported ATM.

It works fine in a linux host (cpanel) with php5.6. But doesn't work in windows. I installed wamp. In phpinfo(), it seems everything is ok. Is there anything I'm missing? What is ATM means?

My phpinfo():

enter image description here

Error:

Fatal error: Uncaught exception 'danog\MadelineProto\Exception' with message 'MadelineProto supports only 64 bit systems ATM' in C:\wamp64\www\telegramphp3\src\danog\MadelineProto\API.php on line 30

Solution

  • Their API.php contains the following code:

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

    What they're doing is not check whenever or not you're running a 64-bit build of PHP or if if your system is 64 bit but rather what the size in bytes for an integer is. That value can be either 4 (32 bit) or 8 (64 bit) on PHP7 (current Windows builds). In older versions of PHP (at least in the 64 bit builds for 5.6, which are marked experimental) that value is going to be always 4.

    So in order to use that library on your system you would need to:

    • Upgrade your PHP version to 7
      • The current Windows builds can be found here, you could try to just replace your current PHP installation or look for an updated package of your ... package.