Hàm preg_replace_callback_array
Hàm preg_replace_callback_array cho phép thực hiện nhiều thay thế trong một chuỗi bằng cách sử dụng các hàm callback khác nhau cho mỗi biểu thức chính quy. Tham số đầu tiên hàm nhận một mảng kết hợp, trong đó các khóa là các biểu thức chính quy và các giá trị là các hàm callback. Tham số thứ hai truyền vào chuỗi cần xử lý.
Cú pháp
preg_replace_callback_array(array $patterns_and_callbacks, string $subject): string
Ví dụ
Hãy thay thế các số bằng bình phương của chúng và các chữ cái bằng chữ in hoa:
<?php
$str = 'a1b2c3';
$res = preg_replace_callback_array([
'/\d+/' => function($matches) {
return $matches[0] * $matches[0];
},
'/[a-z]/' => function($matches) {
return strtoupper($matches[0]);
}
], $str);
echo $res;
?>
Kết quả thực thi mã:
'A1B4C9'
Ví dụ
Chuyển đổi ngày tháng từ định dạng này sang định dạng khác và đánh dấu các số bằng chữ đậm:
<?php
$text = 'Date: 2023-05-15';
$res = preg_replace_callback_array([
'/(\d{4})-(\d{2})-(\d{2})/' => function($matches) {
return $matches[3].'.'.$matches[2].'.'.$matches[1];
},
'/\d+/' => function($matches) {
return '<b>'.$matches[0].'</b>';
}
], $text);
echo $res;
?>
Kết quả thực thi mã:
'Date: <b>15</b>.<b>05</b>.<b>2023</b>'
Xem thêm
-
hàm
preg_replace_callback,
hàm thực hiện thay thế với một hàm callback duy nhất -
hàm
preg_replace,
hàm thực hiện thay thế bằng biểu thức chính quy