preg_replace_callback Perform a regular expression search and replace using a callback &reftitle.description; mixedpreg_replace_callback mixedpattern callablecallback mixedsubject intlimit-1 intcount The behavior of this function is almost identical to preg_replace, except for the fact that instead of replacement parameter, one should specify a callback. &reftitle.parameters; pattern The pattern to search for. It can be either a string or an array with strings. callback A callback that will be called and passed an array of matched elements in the subject string. The callback should return the replacement string. You'll often need the callback function for a preg_replace_callback in just one place. In this case you can use an anonymous function (since PHP 5.3.0) or create_function to declare an anonymous function as callback within the call to preg_replace_callback. By doing it this way you have all information for the call in one place and do not clutter the function namespace with a callback function's name not used anywhere else. <function>preg_replace_callback</function> and <function>create_function</function> \s*\w|', create_function( // single quotes are essential here, // or alternative escape all $ as \$ '$matches', 'return strtolower($matches[0]);' ), $line ); echo $line; } fclose($fp); ?> ]]> subject The string or an array with strings to search and replace. limit The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit). count If specified, this variable will be filled with the number of replacements done. &reftitle.returnvalues; preg_replace_callback returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is &null; If matches are found, the new subject will be returned, otherwise subject will be returned unchanged. &reftitle.changelog; &Version; &Description; 5.1.0 The count parameter was added &reftitle.examples; <function>preg_replace_callback</function> example ]]> &example.outputs; <function>preg_replace_callback</function> using recursive structure to handle encapsulated BB code '.$input[1].''; } return preg_replace_callback($regex, 'parseTagsRecursive', $input); } $output = parseTagsRecursive($input); echo $output; ?> ]]> &reftitle.seealso; PCRE Patterns preg_replace preg_last_error create_function Anonymous functions &seealso.callback;