1--TEST-- 2Test preg_replace() function : error - bad regular expressions 3--FILE-- 4<?php 5/* 6* Function is implemented in ext/pcre/php_pcre.c 7*/ 8/* 9* Testing how preg_replace reacts to being passed the wrong type of regex argument 10*/ 11echo "*** Testing preg_replace() : error conditions***\n"; 12$regex_array = 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$replace = 1; 19$subject = 'a'; 20foreach($regex_array as $regex_value) { 21 @print "\nArg value is $regex_value\n"; 22 var_dump(preg_replace($regex_value, $replace, $subject)); 23} 24$regex_value = new stdclass(); //Object 25try { 26 var_dump(preg_replace($regex_value, $replace, $subject)); 27} catch (Error $e) { 28 echo $e->getMessage(), "\n"; 29} 30?> 31--EXPECTF-- 32*** Testing preg_replace() : error conditions*** 33 34Arg value is abcdef 35 36Warning: preg_replace(): Delimiter must not be alphanumeric, backslash, or NUL in %spreg_replace_error1.php on line %d 37NULL 38 39Arg value is /[a-zA-Z] 40 41Warning: preg_replace(): No ending delimiter '/' found in %spreg_replace_error1.php on line %d 42NULL 43 44Arg value is [a-zA-Z]/ 45 46Warning: preg_replace(): Unknown modifier '/' in %spreg_replace_error1.php on line %d 47NULL 48 49Arg value is /[a-zA-Z]/F 50 51Warning: preg_replace(): Unknown modifier 'F' in %spreg_replace_error1.php on line %d 52NULL 53 54Arg value is Array 55string(1) "a" 56 57Arg value is /[a-zA-Z]/ 58string(1) "1" 59preg_replace(): Argument #1 ($pattern) must be of type array|string, stdClass given 60