PHP-Fusion
v.7.01
AP-Fusion
v7.02.05
Pimped-Fusion-AP
v0.09.03
April 26 2024 01:46:48
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

lom
06/04/2018 14:03
Мы рады, ждем девятку. Очень хочется пощупать

Alipapa
27/03/2018 22:16
Всем привет, все неисправности устранили, всё у нас работает

mukaton
30/10/2015 02:37
Не получается ничего скачать. Ошибка Not Found

Alipapa
06/10/2015 23:00
9-я версия php-fusion на подходе, следите за новостями

Alipapa
10/11/2014 11:24
Заметь, я дважды ответил через 3 минуты после вопроса, могли бы уже решить

Последние статьи
· О стабилизаторах нап...
· СМС и Вебмани
· TinyMCE для пользова...
· PCRE (Perl Compatibl...
· PCRE (Perl Compatibl...
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
PHP-Fusion 7 Bogatyr - бесп...
Моды, плагины
7143 1 Vveb--ws
08-10-2018 16:47
Php-Fusion v9. Первые впеча...
Вопросы по работе
4514 3 Vveb--ws
25-07-2018 13:46
Появился хэлп по PHP-Fusion...
Вопросы по работе
6744 7 Vveb--ws
25-07-2018 13:42
prestashop&ap-fusion
Вопросы по работе
17365 61 Alipapa
26-08-2014 10:29
Плагин магазина Ap-Shop
Моды, плагины
14605 70 Alipapa
18-08-2014 18:14
TinyMCE
Вопросы по работе
21119 55 Alipapa
27-07-2013 21:57
HTML-5
Моды, плагины
5435 1 Alipapa
15-06-2013 19:47
Мультиязычность в Pimped-Fu...
Ошибки, баги, глюки
6267 4 Papich
16-04-2013 12:39
Pimped-Fusion. Первые впеча...
Ошибки, баги, глюки
21721 127 Alipapa
18-12-2012 10:59
Ищу мод для расстановки код...
Моды, плагины
15014 55 Alipapa
17-09-2012 14:00
Как присоединить файл к лич...
Моды, плагины
8263 3 lom
27-05-2012 18:12
Что мне не нравится в после...
Вопросы по работе
6851 4 Alipapa
27-05-2012 18:08
Проблемы с добавлением кате...
Вопросы по работе
7749 5 Alipapa
27-05-2012 18:06

preg_match

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_match -- Выполняет проверку на соответствие регулярному выражению

Описание

mixed preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )

Ищет в заданном тексте subject совпадения с шаблоном pattern

В случае, если дополнительный параметр matches указан, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] - часть строки, соответствующую первой подмаске, и так далее.

flags может принимать следующие значения:

PREG_OFFSET_CAPTURE

В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Данный флаг доступен в PHP 4.3.0 и выше.

Дополнительный параметр flags доступен начиная с PHP 4.3.0.

Поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска. Дополнительный параметр offset доступен начиная с PHP 4.3.3.

Замечание: Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match_all(), поскольку шаблон pattern может содержать такие условия как ^, $ или (?<=x). Сравните:

<?php
  $subject
= "abcdef" ;
  
$pattern = '/^def/' ;
  
preg_match ( $pattern , $subject , $matches , PREG_OFFSET_CAPTURE , 3 );
  
print_r ( $matches );
  
?>

Результат выполнения данного примера:

Array 
  ( 
  )

В то время как этот пример

<?php
  $subject
= "abcdef" ;
  
$pattern = '/^def/' ;
  
preg_match ( $pattern , substr ( $subject , 3 ), $matches , PREG_OFFSET_CAPTURE );
  
print_r ( $matches );
  
?>

выведет следующее:

Array 
  ( 
 [0] => Array 
     ( 
         [0] => def 
         [1] => 0 
     ) 
    
  )

Функция preg_match() возвращает количество найденных соответствий. Это может быть 0 (совпадения не найдены) и 1, поскольку preg_match() прекращает свою работу после первого найденного совпадения. Если необходимо найти либо сосчитать все совпадения, следует воспользоваться функцией preg_match_all(). Функция preg_match() возвращает FALSE в случае, если во время выполнения возникли какие-либо ошибки.

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

Пример 1. Поиск подстроки "php" в тексте

<?php
// Символ "i" после закрывающего ограничителя шаблона означает
// регистронезависимый поиск.
if ( preg_match ( "/php/i" , "PHP is the web scripting language of choice." )) {
    echo
"Вхождение найдено." ;
} else {
    echo
"Вхождение не найдено." ;
}
?>

Пример 2. Поиск слова "web" в тексте

<?php
/*
    Специальная последовательность \b в шаблоне означает границу слова,
    следовательно, только изолированное вхождение слова 'web' будет соответствовать
    маске, в отличие от "webbing" или "cobweb".
*/
if ( preg_match ( "/\bweb\b/i" , "PHP is the web scripting language of choice." )) {
    echo
"Вхождение найдено." ;
} else {
    echo
"Вхождение не найдено." ;
}

if (
preg_match ( "/\bweb\b/i" , "PHP is the website scripting language of choice." )) {
    echo
"Вхождение найдено." ;
} else {
    echo
"Вхождение не найдено." ;
}
?>

Пример 3. Извлечение доменного имени из URL

<?php
// Извлекаем имя хоста из URL
preg_match ( "/^(http:\/\/)?([^\/]+)/i" ,
    
"http://www.php.net/index.html" , $matches );
$host = $matches [ 2 ];

// извлекаем две последние части имени хоста
preg_match ( "/ [ ^\.\/ ] +\. [ ^\.\/ ] + $ /" , $host , $matches );
echo
"domain name is: { $matches [ 0 ]}\n " ;
?>

Результат работы примера:

domain name is: php.net

Смотрите также preg_match_all(), preg_replace(), и preg_split().

Все функции PHP:
Навигация
· Новости
· Статьи
· Скачать
· Форум
· Ссылки
· Категории новостей
· Обратная связь
· Галерея
· Поиск
· CMS AP-Fusion. Отличия от PHP-Fusion
· Javascript справочник
· Техника
Сейчас на сайте
· Гостей: 1

· Пользователей: 0

· Всего пользователей: 453
· Новый пользователь: ZDA
Информеры
Загрузка файлов  +  -
9,948,456 уникальных посетителей Iceberg by Harly