J'ai installé Wamserver 2.0 qui a Apache 2.4.4, MySQL 5.6.12 et PHP 5.4.12. Quand j'échappe php_int_max il m'a donné 2147483647. J'ai aussi Echo Phpinfo () et l'architecture indique X64. Cela suppose qu'il ne se passe pas parce que mon PHP est de 64 bits non? J'ai besoin de mon PHP pour soutenir l'entier 64 bits. J'ai besoin de mon php_int_max pour être 9223372036854775807. P>
Quelqu'un peut-il m'aider? Merci p>
5 Réponses :
Si vous exécutez un système d'exploitation Windows, Wamserver vous suggère que vous êtes, Voilà votre réponse a >: p>
sur Windows X86_64, php_int_max est 2147483647. C'est parce que dans le
Code C sous-jacent, une longue est 32 bits. P>
blockQuote>
Notez que cela ne signifie pas que Windows ne prend pas en charge 64 bits Int:
int64_t code> existe, mais il n'est pas utilisé par PHP Afaik.
J'ai réussi à proposer Ce lien < / a>, sur cette page, il y a un code que vous pourrez peut-être utiliser, pour ajouter de la prise en charge des INT 64 bits à votre code P>
Merci pour la réponse. Alors, y a-t-il un moyen de résoudre ce problème? Je ne comprends pas vraiment ce que c'est me dire de faire avec le lien que vous m'avez donné.
@ user2615039: Il y a Un contournement hacky , qui ne vous oblige pas à passer à Linux;)
Dans le fichier Vous pouvez le commenter et essayer de pirater votre chemin de là. em> p> PS < / strong>: mais c'est ce que je fais, alors j'apprécie :) em> p> p> requiertil.php code>, il effectue la vérification suivante:
Merci pour la solution alternative, j'espère que cela ne causera pas de problèmes plus tard.
@ user2615039 Cela pourrait b>, mais vous pouvez au moins passer à autre chose avec des tests. I> Toujours essayer de traiter de longs entiers comme une chaîne et vous pourriez vous en sortir.
Essayez php7 - le maître actuel http://windows.php.net/downloads/snaps / maître / . Les constructions 64 bits exploitent maintenant toutes les capacités des fenêtres 64 bits. P>
"PHP 7 fournit un support complet 64 bits. Les bâtiments X64 de PHP 7 supportent les entiers natifs 64 bits, LFS, Memory_Limit et bien plus encore." Donc, toutes les constructions, non seulement Master: windows.php.net/download
Oui, 7,0 était maître au moment de l'affichage :) Après la GA, il est maintenant une construction de C.
J'ai essayé php7 et cela a fonctionné: p>
et it sortie exécutant php.exe -r "echo php_int_max;" code> p>
9223372036854775807 code> p>
Aller à 'Vendor / Dropbox / Dropbox-SDK / Lib / Dropbox'
et commentaire lignes 19-23 dans requestutil.php.
commentaire de cette section: p> c'est ça. P> P>
long code> doit devenir
long long code> dans la source PHP. Puis recompiler! :) - N'ayez aucune idée si cela fonctionnerait car cela pourrait briser des choses partout. I> J'espère qu'ils finissent par aller à une représentation longue de 64 bits. Mais il n'y a pas à peu près rien que vous puissiez faire à ce sujet. J'espère aussi qu'ils iront unicode ... mais il y a peu d'espoir.
Je ne suis pas à 100% en ce moment et trop occupé pour le regarder, mais
floatts code> dans php sont
double code> qui sont code> 64bit code> même sous Windows, tandis que
floatts code> sont 32 bits. Donc, vous pourriez essayer de les utiliser.
Le problème est maintenant que je ne peux pas poursuivre mon code lorsque je l'exécute parce que j'essaie d'intégrer Dropbox sur mon site Web, lorsque j'exécute mon code à l'aide de Dropbox SDK, il a une erreur qui indique que ma version de PHP ne fait pas Support 64 bits entier, donc je ne peux pas procéder à l'intégration.
Pouvez-vous poster un message d'erreur?
Erreur fatale: Exception non capturée 'Exception' avec message 'Le SDK Dropbox utilise des entiers 64 bits, mais on dirait que nous sommes exécutés sur une version de PHP qui ne prend pas en charge les entiers 64 bits (php_int_max = 2147483647). Bibliothèque: "C: \ Wamp \ www \ dropbox-sdk \ dropbox \ requiertil.php" 'in c: \ wamp \ www \ dropbox-sdk \ dropbox \ requiertil.php à la ligne 15
S'il vous plaît, vérifiez Stackoverflow .Com / questions / 864058 / ... semble que vous ne pouvez pas avoir 64 bits entiers sur Windows
et IMHO, je pense qu'il vaut mieux utiliser la bibliothèque, qui utilisait la mise en œuvre des chaînes pour les grands nombres