П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4096 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6757 раз(а).

Учебник HTML.
Просмотров 3718 раз(а).

Руководство по PHP5.
Просмотров 5991 раз(а).

Хостинг через призму DNS.
Просмотров 4809 раз(а).

Подборка текстов стандартных документов.
Просмотров 56245 раз(а).

Учебник PHP - Самоучитель
Просмотров 3703 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8336 раз(а).

Внешние атаки...
Просмотров 4564 раз(а).

Учебник PHP.
Просмотров 3172 раз(а).

SSI в примерах.
Просмотров 175 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 8. Строки и регулярные выражения

Функции РНР для работы с регулярными выражениями (Perl-совместимые)

В РНР существует пять функций поиска по шаблону с использованием Perl-совместимых регулярных выражений:

  • preg_match();
  • preg_match_all();
  • preg_replace();
  • preg_split();
  • preg_grep().

Эти функции подробно описаны в следующих разделах.

preg_match()

Функция preg_match() ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE.

Синтаксис функции preg_match():


int pregjnatch(string шаблон, string строка [, array совпадения})

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

$linе = "Vi is the greatest word processor ever created!";

// Выполнить поиск слова "Vi" без учета регистра символов:
if(preg_match("/\bVi\b\i", $line, $matcn)) :
  print "Match found!";
endif;

// Команда if в этом примере возвращает TRUE

preg_match_all()

Функция preg_match_all() находит все совпадения шаблона в заданной строке.

Синтаксис функции preg_match_all():


Int preg_match_all(string шаблон, string строка, array совпадения [, int порядок])

Порядок сохранения в массиве совпадения текста, совпавшего с подвыражениями, определяется необязательным параметром порядок. Этот параметр может принимать два значения:

  • PREG_PATTERN_ORDER — используется по умолчанию, если параметр порядок не указан. Порядок, определяемый значением PREG_PATTERN_ORDER, на первый взгляд выглядит не совсем логично: первый элемент(с индексом 0) содержит массив совпадений для всего регулярного выражения, второй элемент(с индексом 1) содержит массив всех совпадений для первого подвыражения в круглых скобках и т.д.;
  • PREG_SET_ORDER — порядок сортировки массива несколько отличается от принятого по умолчанию. Первый элемент (с индексом 0) содержит массив с текстом, совпавшим со всеми подвыражениями в круглых скобках для первого найденного совпадения. Второй элемент (с индексом 1) содержит аналогичный массив для второго найденного совпадения и т.д.

Следующий пример показывает, как при помощи функции preg_match_al() найти весь текст, заключенный между тегами HTML <b>...</b>:

$user_info = "Name: <b>Rasmus Lerdorf</b> <br> Title: <b>PHP Guru</b>";
preg_match_all("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print $pat_array[0][0]." <br> ".pat_array[0][l]."\n":

Результат:

Rasmus Lerdorf
PHP Guru

preg_replace()

Функция preg_replace() работает точно так же, как и ereg_replасе(), за одним исключением — регулярные выражения могут использоваться в обоих параметрах, шаблон и замена.

Синтаксис функции preg_replace():


mixed preg_replace(mixed шаблон, mixed замена, mixed строка [, int порог])

Необязательный параметр порог определяет максимальное количество замен в строке. Интересный факт: параметры шаблон и замена могут представлять собой масивы. Функция preg_replace() перебирает элементы обоих массивов и выполняет замену по мере их нахождения.

preg_split()

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

Синтаксис функции preg_split():


array preg_split(string шаблон, string строка [, int порог [, int флаги]])

Необязательный параметр порог определяет максимальное количество элементов, на которые делится строка. В следующем примере функция preg_split() используется для выборки информации из переменной.

$user_info="+wj+++Gilmore+++++wjgi]more@hotmail.com+++++++Columbus+++OH";
$fields = preg_split("/\+{1.}/", $user_info);

while($x < sizeof($fields)):
  print $fields[$x]. "<br>";
  $x++;
endwhile;

Результат:

WJ
Gilmore
wjgilmore@hotmail.com
Columbus
OH

preg_grep()

Функция preg_grep() перебирает все элементы заданного массива и возвращает все элементы, в которых совпадает заданное регулярное выражение.

Синтаксис функции preg_grep():


array preg_grep(string шаблон, array массив)

Пример использования функции preg_grep() для поиска в массиве слов, начинающихся на р:

$foods = array("pasta", "steak", "fish", "potatoes");

// Поиск элементов, начинающихся с символа "р".
// за которым следует один или несколько символов
$p_foods = preg_grep("/p(\w+)/", $foods);
$х = 0;

while($x < sizeof($p_foods)) :
  print $p_foods[$x]. "<br>";
  $Х++;
endwhile;

Результат:

pasta
potatoes

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru