检测PHP上的操作系统正在运行


Detecting OS on PHP is running

我在当前的项目中遇到了问题,我需要一些帮助:

  1. 函数strtoupper()mb_strtoupper()等不工作
  2. 我需要设置正确的区域设置以使它们正常工作
  3. 为此,我需要知道PHP上的操作系统正在运行,因为对于Windows,正确的命令是setlocale(LC_ALL, "rus");setlocale(LC_ALL, "Russian_Russia.1251");,而对于其他命令(我不知道是否适用于所有其他命令)是setlocale(LC_ALL, 'ru_RU');

但我发现的所有OS检测方法都使用strupper()/strtolower()来检测OS。。。所以现在我有些困惑。我该怎么办。如何检测操作系统。。。

顺便说一句,性能是至关重要的,如果有人知道检测操作系统或设置正确区域设置的好而快速的方法,那就太棒了!

setlocale支持传递多个语言环境,它将选择第一个可用的语言环境。因此:

setlocale(LC_ALL, 'rus', 'Russian_Russia.1251', 'ru_RU');

这可以跨平台工作。

PHP_OS常数是你要找的-文档

但是,你实际上是用什么方法审视自己的,它们出了什么问题?

phpinfo()是我们要走的路。它给了你所需要的一切。

这不是你的方式。一切都很简单:

setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
// ru_RU.CP1251 for FreeBSD
// rus_RUS.CP1251 for Linux
// Russian_Russia.1251 for Windows