Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
нижний регистр. Возвращает результат перевода. 
Надо заметить, что при неправильной настройке локали (про локаль будет 
рассказано 
чуть позже, а пока скажу только, что это набор правил по переводу символов из 
одно- 
го регистра в другой, переводу даты и времени, денежных единиц и т. д.) функция 

будет выдавать, мягко говоря, странные результаты при работе с буквами 
кириллицы. 
Возможно, в несложных программах, а также если нет уверенности в поддержке со- 
ответствующей локали операционной системой, проще будет воспользоваться "руч- 
ным" преобразованием символов, задействуя функцию strtr(): 
$st=strtr($st, 
"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩљЫЬЭЮЯ", "абвгдеёжзийклмнопрстуфхцчшщъыьэ- 
юя"); 
Главное достоинство данного способа — то, что в случае проблем с кодировкой для 

восстановления работоспособности сценария вам придется всего лишь преобразовать 

его в ту же кодировку, в которой у вас хранятся документы на сервере. 
string strtoupper(string $str) 

Глава 12. Строковые функции 217 
Переводит строку в верхний регистр. Возвращает результат преобразования. Эта 
функции также прекрасно работает со строками, составленными из "английских" 
букв, но с "русскими" буквами может возникнуть все та же проблема. 
Установка локали (локальных настроек) 
string SetLocale(string $category, string $locale) 
Функция устанавливает текущую локаль, с которой будут работать функции преобра- 

зования регистра символов, вывода даты-времени и т. д. Вообще говоря, для 
каждой 
категории функций локаль определяется отдельно и выглядит по-разному. То, какую 

именно категорию функций затронет вызов SetLocale(), задается в параметре 
$category. Он может принимать следующие строковые значения: 
r LC_CTYPE — активизирует указанную локаль для функций перевода в верх- 
ний/нижний регистры; 
r LC_NUMERIC — активизирует локаль для функций форматирования дробных чи- 
сел — а именно, задает разделитель целой и дробной части в числах; 
r LC_TIME — задает формат вывода даты и времени по умолчанию; 
r LC_ALL — устанавливает все вышеперечисленные режимы. 
Теперь поговорим о параметре $locale. Как известно, каждая локаль, 
установленная 
в системе, имеет свое уникальное имя, по которому к ней можно обратиться. 
Именно 
оно и фиксируется в этом параметре. Однако, есть два важных исключения из этого 

правила. Во-первых, если величина $locale равна пустой строке "", то 
устанавлива- 
ется та локаль, которая указана в глобальной переменной окружения с именем, 
сов- 
падающим с именем категории $category (или LANG — она практически всегда 
присутствует в Unix). Во-вторых, если в этом параметре передается 0, то новая 
ло- 
каль не устанавливается, а просто возвращается имя текущей локали для 
указанного 
режима. 
К сожалению, имена локалей задаются при настройке операционной системы, и для 
них, по-видимому, не существует стандартов. Выясните у своего 
хостинг-провайдера, 
как называются локали для разных кодировок русских символов. Но, если следую- 
щий фрагмент работает у вашего хостинг-провайдера, это не означает, что он 
зарабо- 
тает, например, под Windows: 
setlocale('LC_CTYPE','ru_SU.KOI8-R'); 
Здесь вызов устанавливает таблицу замены регистра букв в соответствии с 
кодиров- 
кой KOI8-R. 
По правде говоря, локаль — вещь довольно непредсказуемая и, как я уже говорил, 
довольно плохо переносимая между операционными системами. Так что, если ваш 
сценарий не очень велик, задумайтесь: возможно, лучше будет искать обходной 
путь 
(например, использовать strtr()), а не рассчитывать на локаль. 

Часть IV. Стандартные функции PHP 218 
Преобразование кодировок 
Часто встречается ситуация, когда нам требуется преобразовать строку из одной 
ко- 
дировки кириллицы в другую. Например, мы в программе сменили локаль: была ко- 
дировка windows, а стала — KOI8-R. Но строки-то остались по-прежнему в 
кодировке 
WIN-1251, а значит, для правильной работы с ними нам нужно их перекодировать в 
KOI8-R. Для этого и служит функция преобразования кодировок. 
string convert_cyr_string(string $str, char $from, char $to); 
Функция переводит строку $str из кодировки $from в кодировку $to. К
 
<<-[Весь Текст]
Страница: из 287
 <<-