Valeurs possibles pour: PHP OS

y a-t-il un endroit pour trouver une liste des valeurs possibles pour la constante prédéfinie de PHP PHP_OS ? J'aimerais utiliser cette valeur pour une vérification des exigences du système, mais j'ai besoin de savoir comment les différents systèmes d'exploitation sont nommés dans cette variable.

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

  • CYGWIN_NT-5.1
  • Darwin
  • FreeBSD
  • HP-UX
  • IRIX64
  • Linux
  • NetBSD
  • OpenBSD
  • SunOS
  • Unix
  • WIN32
  • WINNT
  • Windows

si quelqu'un a une liste plus complète, ou s'il connaît d'autres valeurs, j'aimerais les entendre!

56
demandé sur Wilco 2009-04-11 00:51:29

3 réponses

PHP passe à travers les uname , sauf sur Windows ( WINNT ) et Networare ( 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 (et non pas dans Wikipedia)
21
répondu phihag 2016-05-27 07:10:46

je pense qu'une meilleure solution pour faire une 'vérification des besoins' serait d'utiliser réellement des 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 traiter des répertoires sur différents systèmes d'exploitation.

qu'est-ce que vous essayez de faire?

3
répondu Nick Presta 2009-04-10 21:15:30

il me semble que le php_uname("s") pour les systèmes 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 les sous-systèmes posix, tels que Cygwin, Mingw, UWin, EMX+GCC, et MKS. Vous trouverez ci-dessous une liste d'os qui ne sont pas conformes à Posix et qui exécutent PHP.

OS

  • OS / 2 Warp
  • eComStation
  • RISC OS
  • Windows XP 64-bit

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

exemples de chemins racine

  • Unix\linux\Mac OS X: /
  • OS / 2: C:\
  • Amiga: dh0:
0
répondu marz201 2017-01-25 17:48:03