1--TEST-- 2Test preg_grep() function : error conditions - bad regular expressions 3--FILE-- 4<?php 5/* 6* Function is implemented in ext/pcre/php_pcre.c 7*/ 8/* 9* Testing how preg_grep reacts to being passed bad regexes 10*/ 11echo "*** Testing preg_grep() : error conditions ***\n"; 12$values = array('abcdef', //Regex without delimiter 13'/[a-zA-Z]', //Regex without closing delimiter 14'[a-zA-Z]/', //Regex without opening delimiter 15'/[a-zA-Z]/F', array('[a-z]', //Array of Regexes 16'[A-Z]', '[0-9]'), '/[a-zA-Z]/', //Regex string 17); 18$array = array(123, 'abc', 'test'); 19foreach($values as $value) { 20 @print "\nArg value is $value\n"; 21 try { 22 var_dump(preg_grep($value, $array)); 23 } catch (TypeError $e) { 24 echo $e->getMessage(), "\n"; 25 } 26} 27$value = new stdclass(); //Object 28try { 29 var_dump(preg_grep($value, $array)); 30} catch (TypeError $e) { 31 echo $e->getMessage(), "\n"; 32} 33echo "Done" 34?> 35--EXPECTF-- 36*** Testing preg_grep() : error conditions *** 37 38Arg value is abcdef 39 40Warning: preg_grep(): Delimiter must not be alphanumeric, backslash, or NUL in %spreg_grep_error1.php on line %d 41bool(false) 42 43Arg value is /[a-zA-Z] 44 45Warning: preg_grep(): No ending delimiter '/' found in %spreg_grep_error1.php on line %d 46bool(false) 47 48Arg value is [a-zA-Z]/ 49 50Warning: preg_grep(): Unknown modifier '/' in %spreg_grep_error1.php on line %d 51bool(false) 52 53Arg value is /[a-zA-Z]/F 54 55Warning: preg_grep(): Unknown modifier 'F' in %spreg_grep_error1.php on line %d 56bool(false) 57 58Arg value is Array 59preg_grep(): Argument #1 ($pattern) must be of type string, array given 60 61Arg value is /[a-zA-Z]/ 62array(2) { 63 [1]=> 64 string(3) "abc" 65 [2]=> 66 string(4) "test" 67} 68preg_grep(): Argument #1 ($pattern) must be of type string, stdClass given 69Done 70