1--TEST-- 2Test preg_match() function : error conditions - bad regular expressions 3--FILE-- 4<?php 5/* 6 * proto int preg_match(string pattern, string subject [, array subpatterns [, int flags [, int offset]]]) 7 * Function is implemented in ext/pcre/php_pcre.c 8*/ 9error_reporting(E_ALL&~E_NOTICE); 10/* 11* Testing how preg_match reacts to being passed the wrong type of regex argument 12*/ 13echo "*** Testing preg_match() : error conditions ***\n"; 14$regex_array = array('abcdef', //Regex without delimiter 15'/[a-zA-Z]', //Regex without closing delimiter 16'[a-zA-Z]/', //Regex without opening delimiter 17'/[a-zA-Z]/F', array('[a-z]', //Array of Regexes 18'[A-Z]', '[0-9]'), '/[a-zA-Z]/', //Regex string 19); 20$subject = 'this is a test'; 21foreach($regex_array as $regex_value) { 22 print "\nArg value is $regex_value\n"; 23 var_dump(preg_match($regex_value, $subject)); 24} 25$regex_value = new stdclass(); //Object 26var_dump(preg_match($regex_value, $subject)); 27?> 28--EXPECTF-- 29 30*** Testing preg_match() : error conditions *** 31 32Arg value is abcdef 33 34Warning: preg_match(): Delimiter must not be alphanumeric or backslash in %spreg_match_error1.php on line %d 35bool(false) 36 37Arg value is /[a-zA-Z] 38 39Warning: preg_match(): No ending delimiter '/' found in %spreg_match_error1.php on line %d 40bool(false) 41 42Arg value is [a-zA-Z]/ 43 44Warning: preg_match(): Unknown modifier '/' in %spreg_match_error1.php on line %d 45bool(false) 46 47Arg value is /[a-zA-Z]/F 48 49Warning: preg_match(): Unknown modifier 'F' in %spreg_match_error1.php on line %d 50bool(false) 51 52Arg value is Array 53 54Warning: preg_match() expects parameter 1 to be string, array given in %spreg_match_error1.php on line %d 55bool(false) 56 57Arg value is /[a-zA-Z]/ 58int(1) 59 60Warning: preg_match() expects parameter 1 to be string, object given in %spreg_match_error1.php on line %d 61bool(false) 62