Load.php - ошибка в функциях обработки регистров

Автор axel, 19 июня 2007, 10:27:31

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

axel


'strtolower' => $utf8 ? (function_exists('mb_strtolower') ? create_function('$string', '
  return mb_strtolower($string, \'UTF-8\');') : create_function('$string', '
  global $sourcedir;
  require_once($sourcedir . \'/Subs-Charset.php\');
  return utf8_strtolower($string);')) : 'strtolower',
'strtoupper' => $utf8 ? (function_exists('mb_strtoupper') ? create_function('$string', '
  return mb_strtoupper($string, \'UTF-8\');') : create_function('$string', '
  global $sourcedir;
  require_once($sourcedir . \'/Subs-Charset.php\');
  return utf8_strtoupper($string);')) : 'strtoupper',


в данном случае если не utf8, то посылается просто к strtolower или strtoupper. Но эти функции на юникс-системах не работают с кодировкой win-1251. зато работают mb_strtolower и mb_strtoupper (без второго параметра).

долго не мог понять, почему у меня локально сравнение без учета регистра работало (на вин), а на сервере (PHP 5.2.1 на FreeBSD 6.2) - нет.
(делал защиту от подделки ника, кому интересно - пишите)

digger®

Цитата: axel от 19 июня 2007, 10:27:31
в данном случае если не utf8, то посылается просто к strtolower или strtoupper. Но эти функции на юникс-системах не работают с кодировкой win-1251.
Где, в какой доке по PHP написано что эти функции на юникс-системах не работают с кодировкой 1251???
Если кто-то не слышал о локалях, это не значит что весь мир вокруг неправильный.
А mb_strtolower вообще нету в PHP ниже 4.3.0

axel

#2
значит все-равно косяк, т.к. в скрипте нигде локали не проставляются.
(в единственном месте, и то LC_TIME)