题
有没有地方可以找到 PHP 预定义常量的可能值列表 PHP_OS
?我想使用该值进行系统要求检查,但需要知道不同的操作系统如何在此变量中命名。
通过一些搜索,到目前为止我已经整理了以下列表:
- CYGWIN_NT-5.1
- 达尔文
- 自由BSD
- 惠普-UX
- IRIX64
- Linux
- 网络BSD
- 开放BSD
- 太阳操作系统
- Unix
- WIN32
- 温特
- 视窗
如果有人有更完整的列表,或者知道任何其他价值,我很乐意听到他们!
解决方案
PHP 通过 uname, 除了 Windows 上(WINNT
) 和 网络软件(Netware
). 。看 维基百科 对于您的问题中未提及的值的非详尽列表:
- CYGWIN_NT-5.1
- IRIX64
- 太阳操作系统
- 惠普-UX
- OpenBSD(不在维基百科中)
其他提示
我认为进行“需求检查”的更好解决方案是实际使用您需要知道正常工作的东西并看看会发生什么。
例如,有目录分隔符常量、realpath() 等函数来处理不同操作系统上的目录。
具体来说,你想做什么?
看起来像 php_uname("s")
对于非 Unix 操作系统将是一个好的开始,因为在我看来它就像 uname("s")
和 php_uname("s")
在 Unix 系统和 posix 子系统上是相同的,例如 Cygwin、Mingw、UWin、EMX+GCC 和 MKS。下面是不符合 Posix 标准但运行 PHP 的操作系统列表。
操作系统
- OS/2 变形
- 电子商务站
- 精简指令集操作系统
- Windows XP 64 位
请记住,这根本不是用于浏览器检测,而是根路径检测,目录分隔符可能是也可能不是 \
和 /
, 、EOL 和其他一些东西。
根路径示例
- Unix\linux\Mac OS X:
/
- 操作系统/2:
C:\
- 阿米加:
dh0:
不隶属于 StackOverflow