integer pspell_store_replacement(integer dictionary, string misspelling, string correction)
Функция pspell_store_replacement предназначена для установки прав замены для открытого словаря. PHP использует эту пару для предложения замен при последующей проверке. При использовании функции pspell_config_repl можно задать сохранение замен в отдельном файле.
array pspell_suggest(integer dictionary, string word)
Функция pspell_suggest (листинг 12.76) возвращает массив возможных замен для ошибочного слова.
j Листинг 12.76. Функция pspell_suggest_
<?php
$dictionary = pspell_new ("en"); $word = "instantiayt"; if(!pspell_check($dictionary, $word)) {
foreach(pspell_suggest($dictionary, $word) as $suggestion)
{
print("$suggestion<br>");
}
}
12.8. Регулярные выражения
Регулярные выражения являются мощным средством проверки строк на соответствие определенным шаблонам и используют специальный символический язык. При этом PHP предлагает два типа функций для регулярных выражений: свой собственный и совместимый с Perl. Детально регулярные выражения описываются в главе 22, "Синтаксический анализ и обработка строк".
Поддержку регулярных выражений, совместимых с PHP, добавил Андрей Змиев-ский (Andrei Zmievski). Чаще всего регулярные выражения ограничиваются символами / или |, но могут использоваться любые печатные символы, не являющиеся буквами, цифрами, а также обратная косая черта. После второго ограничителя можно разместить один или несколько модификаторов. Такими модификаторам являются буквы, меняющие способ интерпретации регулярного выражения. Есть несколько специфических различий между регулярными выражениями, используемыми в PHP и в Perl 5. Их не очень много, и вы, вероятно, с ними никогда не столкнетесь, и объяснение их специфики ничего не дает без детального ознакомления с регулярными выражениями. Но если вы все-таки интересуетесь этим вопросом, ознакомьтесь с отличным описанием PHP, которое можно найти в Internet по адресу <http://www. php.net/manual/html/ref.pcre.html>.
boolean ereg(string pattern, string text, array matches)
Функция ereg (листинг 12.77) оценивает аргумент pattern как регулярное выражение и делает попытку найти совпадения в аргументе text. При наличии необязательного аргумента matches каждое совпадение будет добавлено в массив. Значение TRUE возвращается, если есть как минимум одно совпадение; в противном случае возвращается значение FALSE.
Первый элемент массива matches, имеющий нулевой индекс, будет содержать совпадение всего регулярного выражения. Последующие элементы массива matches будут содержать совпадения подвыражений. В данном примере эти выражения заключены в скобки.
Листинг 12.77. Функция ereg
<?php
// показать пользовательского агента print("Пользовательский агент: {$_SERVER['HTTP_USER_AGENT']}<br>n");
// сделать попытку проанализировать пользовательского агента
if(ereg("*(.+)/([0-9]).([0-9]+)",
$_SERVER['HTTP_USER_AGENT'], $matches))
{
print("Полное совпадение: $matches[0]<br>n"); print("Браузер: $matches[1]<br>n"); print("Версия: $matches[2]<br>n"); print("Релиз: $matches[3]<br>n");
}
else
{
print(" Пользовательский агент не распознан");
}
string ereg_replace(string pattern, string replacement, string text)
Функция ereg_replace (листинг 12.78) предназначена для замещения определенных подстрок в данных, заданных аргументом text. При каждом совпадении значения pattern подстроки в строке text она заменяется данными, заданными аргументом replacement. Сами данные из аргумента text остаются неизменными, но возвращается его измененная версия.
Если pattern содержит подвыражения в скобках, аргумент replacement может содержать специальный код, определяющий заменяемое подвыражение. Используемая форма выглядит следующим образом: две обратные косые с последующей за ними одной цифрой от 0 до 9. Нуль соответствует всему выражению, цифры 1-9 соответствуют девяти подвыражениям соответственно. Подвыражения нумеруются слева направо, что соответствует вложенным подвыражениям.
j Листинг 12.78. Функция ereg_replace_
<?php
// заменить символ перевода строки на тег разрыва
$text = "line1nline2nline3n";
print(ereg_replace("n", "<br>", $text));
print("<hr>n");
//смешать эти слова
$text = "one two three four";
print(ereg_replace("([a-z]+) ([a-z]+) ([a-z]+) ([a-z]+)", "\4 \2 \1 \3", $text));
?>
boolean eregi(string pattern, string text, array matches)
Функция eregi аналогична функции ereg, за исключением того, что соответствие букв определяется независимо от регистра.
string eregi_replace(string pattern, string replacement, string text)
Функция eregi_replace аналогична функции ereg_replace, за исключением того, что соответствие букв определяется независимо от регистра.
array fnmatch(string pattern, string filename, integer flags)
Функция fnmatch (листинг 12.79) проверяет имя файла на соответствие шаблону. Этот шаблон должен удовлетворять шаблонам, принятым в командной оболочке для имен файлов.
Необязательный аргумент flags управляет проверкой. Если задано значение FNM_NOESCAPE, игнорируются управляющие коды, предваренные обратной косой чертой. Если задано значение FNM_PATHNAME, то выполняется литеральное сравнение символов "косая черта", т.е. они не считаются групповыми символами. Если задано значение FNM_PERIOD, то вызывается точное соответствие ведущих точек.
| Листинг 12.79. Функция fnmatch_
<?php
if(fnmatch(,php-[4-5].?.*', "php-5.1.2.tar.gz"))
{
print('да');
}
else
{
print('нет');
}
array preg_grep(string pattern, array data)
Функция preg_grep сравнивает элементы массива, переданного аргументом data, совпадающие с заданным шаблоном.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Кодирование и декодирование. Часть Девятнадцатая.
24-01-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Кодирование и декодирование. Часть Восемнадцатая. | PHP. Кодирование и декодирование. Часть Двадцатая. |