Computer >> Máy Tính >  >> Lập trình >> PHP

PHP - hàm mb_ereg_replac_callback ()

Trong PHP, mb_ereg_replace_callback () hàm được sử dụng để thực hiện tìm kiếm biểu thức chính quy và thay thế nó bằng một hỗ trợ multibyte bằng cách sử dụng một lệnh gọi lại. Nó sẽ quét các chuỗi và đối sánh chúng với một mẫu, sau đó nó sẽ thay thế văn bản đã khớp với đầu ra của hàm gọi lại. Hàm này giống như mb_ereg_replace () hàm số. Nó được hỗ trợ trong phiên bản PHP 5.4 hoặc cao hơn.

Cú pháp

string mb_ereg_replace_callback(str $pattern, callback $callback, str $string, str $options)

Tham số

Hàm chấp nhận bốn tham số sau -

  • $ mẫu - Tham số này được sử dụng cho mẫu biểu thức chính quy. Nó có thể sử dụng các ký tự nhiềubyte trong một mẫu.

  • $ gọi lại - Tham số này sẽ được gọi và truyền vào một mảng các phần tử phù hợp trong chuỗi chủ đề và nó sẽ trả về chuỗi thay thế.

  • $ string - Tham số này được sử dụng để kiểm tra chuỗi.

  • $ tùy chọn - Tham số này được sử dụng để kiểm tra tùy chọn tìm kiếm.

Lưu ý - Hàm gọi lại thường cần cho mb_ereg_replace_callback () chỉ ở một nơi. Bạn cũng có thể sử dụng một chức năng ẩn danh để khai báo lệnh gọi lại trong lệnh gọi mb_ereg_replace_callback () . Bằng cách sử dụng điều này, chúng ta có thể có tất cả thông tin cho lệnh gọi ở một nơi và không làm rối vùng tên hàm với tên của hàm gọi lại không được sử dụng ở bất kỳ nơi nào khác.

Giá trị trả lại

mb_ereg_replace_callback () trả về thành công cho chuỗi kết quả hoặc nó trả về False do lỗi. Nó trả về NULL nếu chuỗi không hợp lệ cho mã hóa hiện tại.

Ví dụ 1

<?php
   $result = "April Fools day is 04/01/2019\n";
   $result.= "Next match is 12/24/2021\n";

   // callback function
   function next_year($matches)
   {
      return $matches[1].($matches[2]+1);
   }
   echo mb_ereg_replace_callback(
      "(\d{2}/\d{2}/)(\d{4})",
      "next_year",
      $result);
?>

Đầu ra

April Fools day is 04/01/2020
Next match is 12/24/2022

Ví dụ 2

Sử dụng chức năng ẩn danh

<?php
   // anonymous function is used
   $result = "April Fools day is 04/01/2019\n";
   $result.= "Next match is 12/24/2021\n";

   echo mb_ereg_replace_callback(
      "(\d{2}/\d{2}/)(\d{4})",
      function ($matches) {
         return $matches[1].($matches[2]+1);
      },
      $result);
?>

Đầu ra

April fools day is 04/01/2020
Next match is 12/24/2022

Lưu ý - Trong ví dụ 2, các hàm ẩn danh được sử dụng và một hàm gọi lại bị loại bỏ, nhưng kết quả vẫn giữ nguyên.