web-dev-qa-db-fra.com

Valeurs possibles pour: PHP_OS

Existe-t-il un endroit pour trouver une liste des valeurs possibles pour la constante PHP constante prédéfinie PHP_OS? Je voudrais utiliser cette valeur pour une vérification de la configuration requise, mais je dois savoir comment les différents systèmes d'exploitation sont nommés dans cette variable.

À travers quelques recherches, jusqu'à présent, j'ai compilé la liste suivante:

  • CYGWIN_NT-5.1
  • Darwin
  • FreeBSD
  • HP-UX
  • IRIX64
  • Linux
  • NetBSD
  • OpenBSD
  • SunOS
  • Unix
  • WIN32
  • WINNT
  • Les fenêtres

Si quelqu'un a une liste plus complète ou connaît des valeurs supplémentaires, j'aimerais les entendre!

56
Wilco

PHP passe par l'uname , sauf sous Windows (WINNT) et Netware (Netware) . Voir Wikipedia pour une liste non exhaustive de valeurs non mentionnées dans votre question:

  • CYGWIN_NT-5.1
  • IRIX64
  • SunOS
  • HP-UX
  • OpenBSD (pas dans Wikipedia)
21
phihag

Je pense qu'une meilleure solution pour faire une "vérification des exigences" serait d'utiliser réellement les choses que vous devez savoir fonctionner correctement et voir ce qui se passe.

Par exemple, il existe des constantes pour les séparateurs de répertoires, des fonctions comme realpath (), etc. pour gérer les répertoires sur différents systèmes d'exploitation.

Qu'est-ce que vous essayez de faire en particulier?

3
Nick Presta

il semble que la php_uname("s") pour les systèmes d'exploitation non Unix serait un bon début, car il me semble que uname("s") et php_uname("s") sont les mêmes sur les systèmes Unix et sous-systèmes posix, tels que Cygwin, Mingw, UWin, EMX + GCC et MKS. Vous trouverez ci-dessous une liste des systèmes d'exploitation qui ne sont pas compatibles Posix prêts à l'emploi et qui exécutent PHP.

OS

  • OS/2 Warp
  • eComStation
  • RISC OS
  • Windows XP 64 bits

Gardez à l'esprit que ce n'est pas du tout pour la détection du navigateur, mais la détection du chemin racine, les séparateurs de répertoires qui peuvent être ou non \ et /, EOL et quelques autres choses.

Exemples de chemins racine

  • Unix\linux\Mac OS X: /
  • OS/2: C:\
  • Amiga: dh0:
0
marz201