Funktio preg_replace_callback

Funktio preg_replace_callback suorittaa haun säännöllisellä lausekkeella ja korvauksen käyttäen callback-funktiota. Ensimmäisenä parametrina se vastaanottaa säännöllisen lausekkeen, toisena - callback-funktion, ja kolmantena - käsiteltävän merkkijonon. Callback-funktio vastaanottaa osumien taulukon ja sen tulee palauttaa korvausmerkkijono.

Syntaksi

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

Esimerkki

Korvataan kaikki numerot merkkijonossa niiden neliöillä:

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

Koodin suorituksen tulos:

php'Numerot: 4, 16, 36'

Esimerkki

Muunnetaan kaikki sanat suuraakkosiksi:

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

Koodin suorituksen tulos:

php'HEI MAAILMA'

Esimerkki

Lisätään sulkeet jokaisen numeron ympärille:

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

Koodin suorituksen tulos:

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

Katso myös

  • funktion preg_replace,
    joka suorittaa korvauksen säännöllisellä lausekkeella
  • funktion preg_match,
    joka suorittaa haun säännöllisellä lausekkeella