Ce face preg_replace_callback_array
preg_replace_callback_array primește un tablou șablon => funcție. Șabloanele sunt aplicate pe rând, în ordinea din tablou, fiecare pe rezultatul celui anterior.
Înlocuiește mai multe apeluri preg_replace_callback consecutive și ține codul mai ordonat.
Parametri
| Parametru | Descriere |
|---|---|
$pattern |
Tablou expresie regulată => funcție de înlocuire. |
$subject |
Textul sau tabloul de texte. |
$limit |
Opțional. Numărul maxim de înlocuiri pentru fiecare șablon. |
$count |
Opțional. Variabilă în care se salvează numărul total de înlocuiri. |
$flags |
Opțional. De exemplu PREG_OFFSET_CAPTURE. |
Ce returnează
Textul nou sau null la eroare.
Exemple
Exemplul 1: Formatare simplă, în stil Markdown
<?php
$text = "Citește **ghidul** pe https://dexblog.ro și scrie la #php.";
echo preg_replace_callback_array([
'/\*\*(.+?)\*\*/' => fn($m) => "<b>" . $m[1] . "</b>",
'/https?:\/\/[^\s]+?(?=[\s.,]*(\s|$))/' => fn($m) => '<a href="' . $m[0] . '">' . $m[0] . "</a>",
'/#(\w+)/' => fn($m) => '<a href="/tag/' . $m[1] . '/">#' . $m[1] . "</a>",
], $text, -1, $numar);
echo "\nÎnlocuiri: $numar";
Rezultat
Citește <b>ghidul</b> pe <a href="https://dexblog.ro">https://dexblog.ro</a> și scrie la <a href="/tag/php/">#php</a>.
Înlocuiri: 3
Greșeli frecvente
- Uiți că șabloanele se aplică pe rând. Un șablon de mai jos poate modifica HTML-ul introdus de unul de mai sus (de exemplu
#dintr-un link).
Comenzi înrudite
preg_replace_callback: Înlocuiește potrivirile unei expresii regulate cu rezultatul unei funcții scrise de tine.preg_replace: Înlocuiește toate potrivirile unei expresii regulate cu alt text.