ereg('(["[:blank:]]+)[[:blank:]]+' . (["[ ■. blank: ]]+)[[: blank: ]]+' . (["[:blank: ]]+.)', Sstring, $regs);
В результате будут найдены строки, содержащие специальные символы и цифры, которые можно отфильтровать следующим образом:
eregC (["[ :blank: ][ -.digit :]]+)[[ blank: ]]+' . (["t:blank:][:digit:]]+) [[ :blank:]]+' . (["[:blank:][:digit:]]+)', {string, $reg$);
При необходимости фильтр можно расширить.
Дополнительно код примеров можно найти в главе 7. Получить полный список классов символов можно на странице руководства regex(7) любой системы UNIX или Linux.
Выделение заглавными буквами
Если код полагается на встроенные функции РНР для выделения строк заглавными буквами, то сначала надо воспользоваться setlocale(). В противном случае РНР не распознает специальные символы (ж, 0, а) как входящие в набор символов, а потому не станет преобразовывать их к верхнему регистру:
<?php
/* Некоторые специальные, символы немецкого языка */ {string = ' а ц 6";
echo(ucwords({string)); // Дает 'а 0 о'
setlocale(LC_ALL, 'de_DE'); // Устанавливаем локаль для Германии1 echo(ucwords({string)): //Дает 'А 0 О' 1>
Время и дата в национальном формате
В РНР есть функции, с помощью которых получать информацию о
дате и времени в национальном формате пользователя.
Сначала с помощью setlocale() укажем локаль. Для этого применяется синтаксис:
string setlocale(rnix6G category, string locale)
Спецификатор category определяет область действия изменений локали. Она может принимать следующие значения (табл. 22.1):
Категория LC_TIME включает специфическое для локали форматирование даты и времени.
Значение, устанавливающее локаль, в некоторой мере зависит от реализации. Строка может иметь вид cc_RR, где сс - код страны (country code), определенный в стандарте ISO 639, a RR указывает регион (не совпадающий с кодом страны).
Некоторые основные языки используются во многих частях света, поэтому необходимо добавить конкретный регион. Хорошим примером служит английский язык. Его вездесущесть означает, что в системе могут быть установлены локали для Австралии, Ботсваны, Канады, Дании, Великобритании, Гонконга, Ирландии, Индии, Новой Зеландии, Флиппин, Сингапура, США, ЮАР и Зимбабве (Australia, Botswana, Canada, Denmark, Britain, Hong Kong, Ireland, India, New Zealand, Philippines, Singapore, USA, South Africa, Zimbabwe).
Как правило, также имеется файл, в котором определены псевдонимы языков, благодаря чему, например, локаль для Дании можно задать как danish, dansk или da_DK. Псевдонимы локалей нечувствительны к регистру, поэтому можно писать Danish, DANISH или DaNiSh. Напротив, сама локаль чувствительна к регистру и должна быть задана как da_DK, а не da_dk.