preg_replace_callback
(PHP 4 >= 4.0.5, PHP 5)
preg_replace_callback -- Perform a regular expression search and replace using a callbackOpis
mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit [, int &count]] )
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.
Parametry
patternThe pattern to search for. It can be either a string or an array with strings.
callbackA callback that will be called and passed an array of matched elements in the
subjectstring. The callback should return the replacement string.You'll often need the
callbackfunction for a preg_replace_callback() in just one place. In this case you can use 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.Przykład 1. preg_replace_callback() and create_function()
<?php
/* a unix-style command line filter to convert uppercase
* letters at the beginning of paragraphs to lowercase */
$fp = fopen("php://stdin", "r") or die("can't read stdin");
while (!feof($fp)) {
$line = fgets($fp);
$line = preg_replace_callback(
'|<p>\s*\w|',
create_function(
// single quotes are essential here,
// or alternative escape all $ as \$
'$matches',
'return strtolower($matches[0]);'
),
$line
);
echo $line;
}
fclose($fp);
?>subjectThe string or an array with strings to search and replace.
limitThe maximum possible replacements for each pattern in each
subjectstring. Defaults to -1 (no limit).countIf specified, this variable will be filled with the number of replacements done.
Zwracane wartości
preg_replace_callback() returns an array if the
subject parameter is an array, or a string
otherwise.
If matches are found, the new subject will be returned, otherwise
subject will be returned unchanged.
Przykłady
Przykład 3. preg_replace_callback() using recursive structure to handle encapsulated BB code
|