локаль — работает обнаружение ОС на PHP

У меня проблема с текущим проектом, над которым я работаю, и мне нужна помощь:

  1. функции strtoupper(), mb_strtoupper()и т.д. не работают
  2. Мне нужно установить правильную локаль, чтобы они работали
  3. Для этого мне нужно знать, что ОС на PHP работает, потому что для Windows правильная команда setlocale(LC_ALL, "rus"); или же setlocale(LC_ALL, "Russian_Russia.1251"); а для других (не знаю для всех остальных или нет) setlocale(LC_ALL, 'ru_RU');

НО все методы обнаружения ОС я нашел использует strupper()/strtolower() обнаружить ОС … Так что теперь я в некотором замешательстве. Что я должен делать. Как обнаружить ОС …

Кстати, производительность имеет решающее значение, и если кто-то знает хороший и быстрый способ определения ОС или установки правильной локали, это будет здорово!

0

Решение

setlocale поддерживает передачу нескольких локалей, он выберет первый из доступных. Так:

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

Это работает кроссплатформенно.

5

Другие решения

phpinfo() это путь. Это дает вам все, что вам нужно.

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
1

PHP_OS
Постоянный это то, что вы ищете — документы

Но какие методы вы на самом деле смотрели на себя, и что с ними не так?

0
По вопросам рекламы [email protected]