Συνάρτηση preg_replace_callback

Η συνάρτηση preg_replace_callback εκτελεί αναζήτηση με κανονική έκφραση και αντικατάσταση χρησιμοποιώντας συνάρτηση callback. Δέχεται ως πρώτη παράμετρο κανονική έκφραση, ως δεύτερη - συνάρτηση callback, και ως τρίτη - συμβολοσειρά για επεξεργασία. Η συνάρτηση callback λαμβάνει πίνακα ταιριασμάτων και πρέπει να επιστρέφει συμβολοσειρά αντικατάστασης.

Σύνταξη

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

Παράδειγμα

Ας αντικαταστήσουμε όλους τους αριθμούς στη συμβολοσειρά με τα τετράγωνά τους:

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

Αποτέλεσμα εκτέλεσης κώδικα:

php'Αριθμοί: 4, 16, 36'

Παράδειγμα

Μετατρέπουμε όλες τις λέξεις σε κεφαλαία:

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

Αποτέλεσμα εκτέλεσης κώδικα:

php'HELLO WORLD'

Παράδειγμα

Προσθέτουμε παρενθέσεις γύρω από κάθε αριθμό:

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

Αποτέλεσμα εκτέλεσης κώδικα:

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

Δείτε επίσης

  • τη συνάρτηση preg_replace,
    που εκτελεί αντικατάσταση με κανονική έκφραση
  • τη συνάρτηση preg_match,
    που εκτελεί αναζήτηση με κανονική έκφραση