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

时间:2014-11-05 08:08:51

标签: php locale

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

  1. 函数strtoupper()mb_strtoupper()等无效
  2. 我需要设置正确的区域设置才能使它们正常工作
  3. 为此,我需要知道PHP上的操作系统正在运行,因为对于Windows,正确的命令是setlocale(LC_ALL, "rus");setlocale(LC_ALL, "Russian_Russia.1251");而对于其他人(我不知道所有其他人是否) setlocale(LC_ALL, 'ru_RU');
  4. 但是我发现所有操作系统检测方法都使用strupper() / strtolower()来检测操作系统......所以现在我感到有些困惑。我该怎么办。如何检测操作系统...

    顺便说一句,性能至关重要,如果有人知道检测操作系统的好方法和设置正确的语言环境,那就太棒了!

4 个答案:

答案 0 :(得分:5)

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

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

这可以跨平台工作。

答案 1 :(得分:1)

phpinfo()是要走的路。它为您提供所需的一切。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

PHP_OS  常数是您正在寻找的 - docs

但是你实际看到了什么方法,以及它们出了什么问题?