Funktion preg_replace_callback

Die Funktion preg_replace_callback führt eine Suche mittels regulärem Ausdruck und Ersetzung unter Verwendung einer Callback-Funktion durch. Der erste Parameter akzeptiert den regulären Ausdruck, der zweite - die Callback-Funktion und der dritte - die zu verarbeitende Zeichenkette. Die Callback-Funktion erhält ein Array der Übereinstimmungen und muss eine Ersetzungszeichenkette zurückgeben.

Syntax

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

Beispiel

Ersetzen wir alle Zahlen in der Zeichenkette durch ihre Quadrate:

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

Ergebnis der Codeausführung:

php'Numbers: 4, 16, 36'

Beispiel

Wandeln wir alle Wörter in Großbuchstaben um:

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

Ergebnis der Codeausführung:

php'HELLO WORLD'

Beispiel

Fügen wir Klammern um jede Zahl hinzu:

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

Ergebnis der Codeausführung:

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

Siehe auch

  • die Funktion preg_replace,
    die eine Ersetzung mittels regulärem Ausdruck durchführt
  • die Funktion preg_match,
    die eine Suche mittels regulärem Ausdruck durchführt