Примеры использования preg_grep()

Пример 1. Возвращает все элементы массива, содержащие числа с плавающей точкой

<?php$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Пример 2. Возвращает ключи элементов массива, содержащих искомый паттерн (строку поиска)

<?phpfunction preg_array_key( $PatternString, $InputArray ){
return key( preg_grep( $PatternString, $InputArray ) );
}
?>

Пример 3. Возвращает массив элементов, не содержащих строку поиска

<?php$nomatch = preg_grep("/{$keyword}/i",$array,PREG_GREP_INVERT);
?>

Пример 4. Cпособ защиты от попыток SQL-инъекций.

Глобальная переменная $_REQUEST проверяется с помощью следующего регулярного выражения:

'/[\'")]* *[oO][rR] *.*(.)(.) *= *\\2(?:--)?\\1?/'

Использование:

<?php$SQLInjectionRegex = '/[\'")]* *[oO][rR] *.*(.)(.) *= *\\2(?:--)?\\1?/';
$suspiciousQueryItems = preg_grep($SQLInjectionRegex, $_REQUEST);
?>

Код обнаруживает следующие строки (полностью, регистронезависимо, a=любой символ):

' or 1=1--
" or 1=1--
or 1=1--
' or 'a'='a
" or "a"="a
') or ('a'='a