Разное
- Главная
- Шаблоны сайта
- Книги
- Фон для сайта
- Анимированные картинки
- Партнерские программы
- Лохотроны и кидалово в интернете

Скрипты

Php скрипты:
-Форумы,
-Портальные системы / CMS,
-Чаты,
-Доски объявлений,
-  Голосования
-Гостевые книги,
-FAQ системы,
-  Новости,
-Ссылки и каталоги ссылок
-Электронная почта,
-Электронная коммерция,
-Поиск,
-Файловые менеджеры.
JavaScript скрипты:
-Графика,
- Защита,
-Навигация,
-Текстовые эффекты,
-Часы и кaлендари.

Статьи
web-мастеру:
-Продвижение сайтов,SEO,
-Юзабилити,
-Поисковые системы,
- CMS (Системы управления сайтом),
-Apache,
-.htaccess,
-Mod_rewrite,
-Хостинг.
web
-PHP
-Perl
-ASP,
-SSI
-Javascript
-AJAX
-Java,
-Python
-ASP.NET
-Ruby on Rails.
Базы данных:
-MySQL,
-SQL,
SQLite
-PostrgeSQL
-Oracle
-MS SQL.
Языки разметки:
-HTML/xHTML
-CSS
-DHTML,
-WAP/WML,
-XML,
-RSS.
Интернет:
-Безопасность,
-Протоколы,
 -Интернет и Закон.


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

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

Прежде всего, напомню, что регулярные выражения представляют собой обычные текстовые строки, которые используются как шаблоны для анализа текста. Эти строки составляются по специальным правилам, позволяющим описать практически любую последовательность символов.

В состав PHP входит три набора функций для работы с регулярными выражениями. К первому набору относятся функции, названия которых начинаются с ereg. Эти функции работают с регулярными выражениями стандарта POSIX. Второй набор функций, по сути, является расширением первого, и допускает использование в регулярных выражениях многобайтных символов (Unicode). Эти функции начинаются с mb_. Третий набор функций (PCRE библиотека) работает с PERL-совместимыми регулярными выражениями. Названия этих функций начинаются с приставки preg. Этот набор функций обеспечивает большую функциональность и быстродействие, поэтому рассказывать я буду именно о нем.

На правилах составления самих регулярных выражений останавливаться нет смысла. Даже их краткое описание займёт несколько десятков страниц. Поэтому перейдём к рассмотрению библиотеки. Она включает семь функций, которые позволяют выполнять поиск, замену и разбивку текста с помощью регулярных выражений.
Для поиска в тексте используются функции:


preg_grep()
preg_match_all()
preg_match()


Разница между ними заключается в количестве передаваемых параметров и возвращаемых значений. Например, preg_match() прекращает работу после первого найденного совпадения, а preg_match_all() – после того, как будут найдены все совпадения.

Замену текста можно выполнить с помощью функций:


preg_replace_callback()
preg_replace()


Как несложно догадаться, preg_replace_callback() позволяет указать специальную функцию, которая будет использована для замены найденных совпадений. preg_replace() – просто заменяет найденные совпадения на заданную строку.

Функция preg_split() разбивает текст по заданному регулярному выражению.

Остальные функции носят вспомогательный характер. preg_last_error() – возвращает код последней ошибки, возникшей при работе библиотеки. preg_quote() – экранирует символы в регулярном выражении, т.е. перед каждым служебным символом вставляет обратный слеш.

Теперь рассмотрим небольшой пример. Допустим, есть список eMail адресов, разделенных запятыми или пробелами, по которому нам требуется создать список имен пользователей.
Решить эту задачу можно следующим образом:


$text = "vvv@ttt.bbb, ddd@rr.yy, ff@ttt.zz fer@ppp.aaa";
$pattern = "/[,|\s]?(\S+)@/";
preg_match_all($pattern, $text, $res);
foreach (
$res[1] as $name) {
    echo
"<p>".$name."</p>";
}


Имена пользователей соответствуют первой подмаске регулярного выражения, которое находится в переменной $pattern. Функция preg_match_all ищет все совпадения с регулярным выражением в списке адресов ($text) и сохраняет их в переменной $res.

Как видите, понадобилось всего шесть строк кода.

К недостаткам библиотеки можно отнести не полную поддержку кириллицы. Например, синтаксис регулярных выражений предусматривает возможность задания модификатора «i», который указывает, что во время поиска не нужно учитывать регистр символов. Но если текст содержит символы кириллицы (кодировка UTF-8), то на результат поиска этот модификатор влияния не окажет. Обойти эту проблему можно, если заранее преобразовать текст к нижнему регистру (например, с помощью функции mb_convert_case).

Назад
Автор: Стаценко Владимир
Сайт автора: simplecoding.org





 
Реклама


Реклама

Рейтинги

Яндекс цитирования
Анти-Бан Яндекса для сайта www.webmas.ru