Funktsioon preg_replace_callback

Funktsioon preg_replace_callback teostab otsingu regulaaravaldise abil ja asendamise kasutades tagasikutsefunktsiooni. Esimesena võtab parameetriks regulaaravaldise, teiseks - tagasikutsefunktsiooni ja kolmandaks - töödeldava stringi. Tagasikutsefunktsioon saab vastete massiivi ja peab tagastama asendusstringi.

Süntaks

phppreg_replace_callback(pattern, callback, subject, [limit], [count]);

Näide

Asendame kõik numbrid stringis nende ruutudega:

php<?php
  $str = 'Numbrid: 2, 4, 6';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return $matches[0] * $matches[0];
  }, $str);
  echo $res;
?>

Koodi täitmise tulemus:

php'Numbrid: 4, 16, 36'

Näide

Teisendame kõik sõnad suurteks tähtedeks:

php<?php
  $str = 'tere maailm';
  $res = preg_replace_callback('/\b\w+\b/', function($matches) {
    return strtoupper($matches[0]);
  }, $str);
  echo $res;
?>

Koodi täitmise tulemus:

php'TERE MAAILM'

Näide

Lisame iga numbri ümber sulud:

php<?php
  $str = '1 2 3 4 5';
  $res = preg_replace_callback('/\d+/', function($matches) {
    return '('.$matches[0].')';
  }, $str);
  echo $res;
?>

Koodi täitmise tulemus:

php'(1) (2) (3) (4) (5)'

Vaata ka

  • funktsiooni preg_replace,
    mis teostab asendamise regulaaravaldise abil
  • funktsiooni preg_match,
    mis teostab otsingu regulaaravaldise abil