mb_ereg_replace_callback în PHP

Expresii regulate PHP 5.4.1+

Înlocuiește potrivirile unei expresii regulate multibyte cu rezultatul unei funcții.

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

Ce face mb_ereg_replace_callback

Funcționează ca preg_replace_callback: pentru fiecare potrivire este apelată funcția ta, care primește tabloul potrivirii ($m[0], $m[1]…) și returnează textul pus în loc. Șablonul se scrie fără delimitatori.

Parametri

Parametru Descriere
$pattern Expresia regulată, fără delimitatori.
$callback Funcția care primește potrivirea și returnează textul nou.
$string Textul în care se face înlocuirea.
$options Opțional. Opțiuni pentru acest apel.

Ce returnează

Textul nou, sau false/null la eroare.

Exemple

Exemplul 1: Cantități dublate

<?php
echo mb_ereg_replace_callback('(\d+) (\w+)', fn($m) => ($m[1] * 2) . " " . $m[2], "3 mere, 5 pere și 2 gutui");

Rezultat

6 mere, 10 pere și 4 gutui

Exemplul 2: Primul cuvânt din fiecare propoziție cu majusculă

<?php
$text = "ștefan a venit. țara e frumoasă. învățăm.";

echo mb_ereg_replace_callback('(^|\. )(\w)', fn($m) => $m[1] . mb_strtoupper($m[2]), $text);

Rezultat

Ștefan a venit. Țara e frumoasă. Învățăm.

Greșeli frecvente

  • Funcția nu returnează un text (uiți return la o funcție normală) și potrivirile dispar.

Comenzi înrudite