Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало пути.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
8 Мб
Скачать
☆

Установка локальных настроек

Локалью будем называть совокупность таких настроек системы, как формат даты и времени, язык, кодировка. Для установки локали используется функция SetLocale():

SetLocale(string $category, string $locale)

Параметр $category может принимать следующие строковые значения:

LC_CTYPE — активизирует указанную локаль для функций перевода в верхний/нижний регистры; LC_NUMERIC — активизирует локаль для функций форматирования дробных чисел, задает разделитель целой и дробной части в числах; LC_TIME — задает формат вывода даты и времени; LC_ALL — устанавливает все вышеперечисленные режимы.

Параметр $locale задает локаль, по установленному в системе уникальному имени, по которому к ней можно обратиться. Именно оно и фиксируется в этом параметре. Если величина $locale равна пустой строке "", то устанавливается та локаль, которая указана в глобальной переменной окружения, если в этом параметре передается 0, то новая локаль не устанавливается, а просто возвращается имя текущей локали для указанного режима.

Часто встречается ситуация, когда нам требуется преобразовать строку из одной кодировки кириллицы в другую. Например, мы в программе сменили локаль: была кодировка windows, а стала — KOI8-R. Но строки-то остались по-прежнему в кодировке WIN-1251, а значит, для правильной работы с ними нам нужно их перекодировать в KOI8-R. Для этого и служит функция преобразования кодировок.

convert_cyr_string(string $strike, char $from, char $to);

Функция переводит строку $strike из кодировки $from в кодировку $to. Конечно, это имеет смысл только для строк, содержащих "русские" буквы, т. к. латиница во всех кодировках выглядит одинаково. Разумеется, кодировка $from должна совпадать с истинной кодировкой строки, иначе результат получится неверным. Значения $from и $to — один символ, определяющий кодировку:

k — koi8-r; w — windows-1251; i — iso8859-5; a — x-cp866; d — x-cp866;

Регулярные выражения

Одним из способов поиска данных являются механизмы поиска по шаблону. Базовым средством для поиска по шаблону являются регулярные выражения - последовательность символов, применяемых для поиска искомого текста.

Простейшее регулярное выражение совпадает с одним или несколькими символами строки. Квадратные скобки ([ ]) означают “любой символ из перечисленных в скобках”. Ниже перечислены некоторые интервалы, с помощью знака -. Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указанные интервалы (a-z и A-Z).

Служебный символ . (точка) означает <любой символ>. Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р.

( ) – Логическая группировка выражений, которая (может)+ повторяться.

Иногда требуется найти служебные символы в строках вместо того, чтобы использовать их в описанном специальном контексте. В этом случае служебные символы экранируются обратной косой чертой (\).

Perl считается одним из лучших языков обработки текстов. Разработчики РHР сделали синтаксис регулярных выражений Perl доступным для пользователей РНР. Регулярные выражения из нескольких символов в стиле Perl записываются в косых скобках. Рассмотрим простой пример: /stud/. Если записать /stud/i, поиск осуществляется без учета регистра. /^stud/i означает, что stud должно находиться в начале слова (student), а /stud$/ - в конце (restud). Регулярное выражение /^$/i соответствует пустой строке.

Квадратные скобки /[абвг ]/ означают “любой один символ а,б,в или г из перечисленных в скобках”. Для создания регулярных выражений могут быть использованы интервалы. Ниже перечислены некоторые интервалы, задаваемые с помощью знака -:

/[0-9]/ - совпадает с любой десятичной цифрой от 0 до 9;

/[a-z]/ - совпадает с любым символом нижнего регистра от а до z;

/[A-Z]/ - совпадает с любым символом верхнего регистра от А до Z;

/[a -Z]/ - совпадает с любым символом нижнего или верхнего регистра от а до Z.

Специальные символы представляет собой алфавитный символ с префиксом \ - признаком особой интерпретации следующего символа:

\d - обозначает любую десятичную цифру;

\D - обозначает любой символ кроме десятичной цифры;

\w - алфавитно-цифровой символ

\W - символ, не являющийся алфавитно-цифровым

\s - пробельный символ

\S - символ не являющийся пробельным

\ . – Шаблону соответствует знак точки в строке.

\n – Символ перевода строки. Строка\n Еще строка

\r – Символ возврата каретки. Текст\r

\t – Символ табуляции. \tКрасная строка

\\ – Обратный слеш

Еще один символ \b, совпадает с границами слов: /sa\b/. Противоположный символ, \В, совпадает с чем угодно, кроме границы слова: /sa\B/

Символы +, * и {...}, обозначающие количество повторений отдельного символа или конструкции, заключенной в квадратные скобки, называются квантификаторами.

Шаблон /stu+/ совпадает с последовательностью stu, за которой могут следовать дополнительные символы u. Рассмотрим другой пример использования квантификатора: /st{2,4}/. Этот шаблон совпадает с символом s, за которым следуют от 2 до 4 экземпляров символа t.

Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указаные интервалы (a-z и A-Z).

Служебный символ . (точка) означает любой символ поэтому для поиска точки ее надо экранировать символом \.

Например, выражение /[\d]+/ используется для поиска цифровой подстроки.

Шаблон /<([\w]+)>/ совпадает с конструкциями, заключенными в угловые скобки, - например, тегами HTML.

Подстроки в регулярных выражениях можно группировать при помощи круглых скобок: /домен – (by|ru|uk|com)/ соответствует строке домен – by или другой.

| – подобен оператору || (OR) в логическом выражении. Оператор | (или) проверяет совпадение одной из нескольких альтернатив. ( ) – Логическая группировка выражений, которая (может)+ повторяться.