HomeMenu
Jesus · Bible · HTML · CSS · JS · PHP · SVG · Applications

mb_ereg_replace_callback

Description

The mb_ereg_replace_callback of Multibyte String for PHP perform a regular expression search and replace with multibyte support using a callback.

Syntax

mb_ereg_replace_callback(
    string $pattern,
    callable $callback,
    string $string,
    ?string $options = null
): string|false|null

Parameters

pattern

The regular expression pattern.

Multibyte characters may be used in pattern.

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 mb_ereg_replace_callback() in just one place. In this case you can use an anonymous function to declare the callback within the call to mb_ereg_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.

string

The string being checked.

options

The search option.

OptionDescription
iAmbiguity match on
xEnables extended pattern form
m'.' matches with newlines
s'^' -> '\A', '$' -> '\Z'
pSame as both the m and s options
lFinds longest matches
nIgnores empty matches

Return

The resultant string on success, or false on error. If string is not valid for the current encoding, null is returned.

Examples

1 · pattern callback string

<?

function myfunction($myparameter)
{
    return "$myparameter[0]\n$myparameter[1]\n$myparameter[2]\n$myparameter[3]";
}

$pattern = '🐘(st(r(i)ng))';
$callback = 'myfunction';
$string = '🐘string';

$return = mb_ereg_replace_callback($pattern, $callback, $string);

echo $return;
🐘string
string
ring
i

2 · pattern callback · anonymous string

<?

$pattern = '🐘(st(r(i)ng))';
$callback = function ($myparameter)
{
    return "$myparameter[0]\n$myparameter[1]\n$myparameter[2]\n$myparameter[3]";
};
$string = '🐘string';

$return = mb_ereg_replace_callback($pattern, $callback, $string);

echo $return;
🐘string
string
ring
i

3 · options · i

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '🐘STRING';
$callback = 'myfunction';
$string = '🐘string';
$options = 'i';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'🐘string'

4 · options · x

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '🐘 s t r i n g';
$callback = 'myfunction';
$string = '🐘string';
$options = 'x';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'🐘string'

5 · options · m

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '.🐘string';
$callback = 'myfunction';
$string = '
🐘string';
$options = 'm';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'
🐘string'

6 · options · s

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '^🐘string$';
$callback = 'myfunction';
$string = '🐘string';
$options = 's';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'🐘string'

7 · options · p

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '^.🐘string$';
$callback = 'myfunction';
$string = '
🐘string';
$options = 'p';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'
🐘string'

8 · options · l

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '🐘.*tring';
$callback = 'myfunction';
$string = '🐘stringtring';
$options = 'l';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'🐘stringtring'

9 · options · n

<?

function myfunction($myparameter)
{
    return $myparameter[0];
}

$pattern = '';
$callback = 'myfunction';
$string = '🐘string';
$options = 'n';

$return = mb_ereg_replace_callback($pattern, $callback, $string, $options);

var_export($return);
'🐘string'