Возможные значения для: PHP_OS - PullRequest
56 голосов
/ 11 апреля 2009

Есть ли место для поиска списка возможных значений предопределенной константы PHP PHP_OS? Я хотел бы использовать это значение для проверки системных требований, но мне нужно знать, как разные операционные системы названы в этой переменной.

В результате поиска я составил следующий список:

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

Если у кого-нибудь есть более полный список или он знает какие-либо дополнительные значения, я бы хотел их услышать!

Ответы [ 3 ]

21 голосов
/ 11 апреля 2009

PHP проходит через uname , за исключением Windows (WINNT) и Netware (Netware) . См. Википедия , где приведен неполный список значений, не упомянутых в вашем вопросе:

  • CYGWIN_NT-5,1
  • IRIX64
  • SunOS
  • HP-UX
  • OpenBSD (не в Википедии)
3 голосов
/ 11 апреля 2009

Я думаю, что лучшим решением для «проверки требований» было бы на самом деле использовать вещи, которые вам нужны, чтобы знать, как правильно работать, и видеть, что происходит.

Например, есть константы для разделителей каталогов, такие функции, как realpath () и т. Д. Для работы с каталогами в разных операционных системах.

Что конкретно вы пытаетесь сделать?

0 голосов
/ 21 июня 2013

похоже, что php_uname("s") для не-Unix-систем было бы хорошим началом, поскольку мне кажется, что uname("s") и php_uname("s") одинаковы в Unix-системах и подсистемах posix, таких как Cygwin, Mingw , UWin, EMX + GCC и MKS. Ниже приведен список операционных систем, которые не совместимы с Posix и работают на PHP.

OS

  • OS / 2 Warp
  • eComStation
  • RISC OS
  • Windows XP, 64-разрядная

Имейте в виду, что это вовсе не для обнаружения в браузере, а для определения корневого пути, разделителей каталогов, которые могут или не могут быть \ и /, EOL и некоторых других.

Примеры корневых путей

  • Unix \ linux \ Mac OS X: /
  • OS / 2: C:\
  • Амига: dh0:
...