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);
true

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);
<!doctype html>
<html>
<body>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADp0lEQVR4nO3bv2vyQBgH8O/7EqGC3To4hJBXMmSQ4J9gQTo7FnHyT3F2cnR0ECcJ4lSKFf8CKeIgJZWMIg7N0CKFvIPlra/mp+Z6F3g+3CQXn7vHmFzuLgAhhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCEs/OLdgCRpGsplGAaKRagqbm5wfQ0AjoPNBqsV5nM8P2MywcsL77byoqpoNrFcwnWjluUSzSZUlXfTf1KphMEgRo5Oy2CAUol3N1iTZXS7F6XpsHS7kGXeXWKkXsd2m1im9mW7Rb3Ou2PJkiR0Ogmn6bB0OpAk3p1MRC6H8ZhhpvZlPEYux7urF8rlMJ0yz9S+TKdpzpck/cQ5dXR+pfX/yPQ65Vc6Hd7dPkO9ziFT+5Ky+6MsJz9KiF6221SNvyKOPG0bth0jC9Hrd7u8UxBRqRTemeEQuv5VX9cxHCZc33VT8jwU+tw3HHrcswKOGgyOK0tSeL5OjxKOqob/5v/OkUOy7Fvf8wKk6+GBRJ+faDbDrzt+LMujvmX51g+9fjWbAPA7+V4m5P6edwsOCNWYY5oW6ValaR7Hxv0bXhJLCI1GpA6Ypsex/b5v/X7fo75pRorVaLDu9Lna7UgdcF2MRt+/uSyH99w0v88vTcNoFDVQu80rGWHiPjbbtvdF3a9YVrxBrOtiPBZ1dcey8OcP70b87/VV1GS9vX2tYonDcURNluvyboEXccdZAhI0WY7DuwUnHEfUZG02vFtwYrMRNVmrFe8WnFitIOik/HyO21uPz9/fUSzi85NVXEnCfI5s1rtJgiZrNvP+PJtFoYDHR1ZxKxXvTAU0ib9CwXck3esxjNvr+cYtFBjGvZTfFqLdjtUEgKZht/MOulwCwg4dAO8ZAgCZDFotJhFbLWQy8RojCkUJeqytVhMOV60GhVOUhMMlL2DpYb32noA/j65jvfaNlYIFCwCGEfRrLxbI5xOIks9jsQgKZBgJRPkJwYusi8Wl55euh2QqNYusiLB8v92ef/2qVsO/PE3L9wBqtaD+7ItpxhtPaFqkqfdajVmv2Imy5Wi3Q6+HSiVoX5UkoVJBr+c7njosp1uOBJ38OyJJeHjwflo85TiYTDCfw7bx8QEAV1dQFBSLKJejTsA+PeHujuFDKFu0TTIe2oAbD23tjq1WY/LSQCrvfVHQ6yixGUYCLzql5mkmEYpy5it0cecS0jHOiqhQQLmMUino5czZDJNJ0Ma2AH8BqXKg15w4tCcAAAAASUVORK5CYII=">
</body>
</html>

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'