preg_replace_callbackPerform a regular expression search and replace using a callback
&reftitle.description;
mixedpreg_replace_callbackmixedpatterncallbackcallbackmixedsubjectintlimit-1intcount
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.
preg_replace_callback and
create_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;
preg_replace_callback example
]]>
&example.outputs;
preg_replace_callback using recursive structure
to handle encapsulated BB code
'.$input[1].'';
}
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
$output = parseTagsRecursive($input);
echo $output;
?>
]]>
&reftitle.seealso;
preg_replacecreate_function&seealso.callback;