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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство по PHP
Пред. След.

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().



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





Copyright © 2005-2016 Project.Net.Ru