Vérifier si votre code est en cours d'exécution sur 64 bits PHP
Personne ne sait d'une façon de vérifier à l'intérieur de PHP si le script est en cours d'exécution que soit 32 bits ou 64 bits? Actuellement, je suis en utilisant PHP 5.3.5.
Idéalement, je voudrais écrire une fonction donc mon code peut ressembler à ceci:
if( is_32bit() === true ) {
do_32bit_workaround();
}
do_everything_else();
Quelqu'un a des idées?
- il semble répondre à cette question ici: stackoverflow.com/questions/2353473/...
Vous devez vous connecter pour publier un commentaire.
Vérifier la
PHP_INT_SIZE
constante. Il va varier en fonction de la taille du registre (c'est à dire 32 bits vs 64 bits).Dans les systèmes 32 bits
PHP_INT_SIZE
devrait être 4, pour 64 bits, il devrait être 8.Voir http://www.php.net/manual/en/language.types.integer.php pour plus de détails.
PHP_INT_SIZE
devrait être pour 32 bits et 64 bits. matb33 du lien fournit cette information.php -r 'echo (PHP_INT_SIZE===8)?"64 bit ":"32 bit ";'
Vous pouvez écrire une fonction comme ceci:
Ensuite, vous pouvez utiliser l'exemple de code que vous avez posté:
Un court chemin pour obtenir le nombre de bits.
Comment cela fonctionne:
Le bit à bit opérateur de complément, le tilde, ~, renverse tous les bits.
@voir http://php.net/manual/en/language.operators.bitwise.php
À l'aide de ce sur 0 commutateurs sur chaque bit d'un entier.
Cela vous donne le plus grand nombre que PHP installer peut gérer.
Puis à l'aide de decbin() vous donnera une représentation de chaîne de ce nombre dans sa forme binaire
@voir http://php.net/manual/en/function.decbin.php
et strlen vous donnera le nombre de bits.
Ici est-il utilisable fonction
Je viens de regarder autour et ne pas trouver quelque chose de trop prometteur. Il ya une bonne chance que vous pouvez utiliser
$_SERVER['SERVER_SOFTWARE']
à dire (à vérifier de quoi il s'imprime sur votre système), mais faire de ce portable et toujours précis est probablement pas faisable.Essayez ce simple fonction PHP