我遇到了当前项目的问题,我需要一些帮助:
strtoupper()
,mb_strtoupper()
等无效setlocale(LC_ALL, "rus");
或setlocale(LC_ALL, "Russian_Russia.1251");
而对于其他人(我不知道所有其他人是否) setlocale(LC_ALL, 'ru_RU');
但是我发现所有操作系统检测方法都使用strupper()
/ strtolower()
来检测操作系统......所以现在我感到有些困惑。我该怎么办。如何检测操作系统...
顺便说一句,性能至关重要,如果有人知道检测操作系统的好方法和设置正确的语言环境,那就太棒了!
答案 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
但是你实际看到了什么方法,以及它们出了什么问题?