Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP – mb_ereg_replac_callback() 함수

<시간/>

PHP에서 mb_ereg_replace_callback() 함수는 정규식 검색을 수행하고 콜백을 사용하여 멀티바이트 지원으로 대체하는 데 사용됩니다. 문자열을 스캔하고 패턴과 일치시킨 다음 일치하는 텍스트를 콜백 함수의 출력으로 바꿉니다. 이 함수는 mb_ereg_replace()와 같습니다. 기능. PHP 5.4 이상 버전에서 지원됩니다.

구문

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

매개변수

이 함수는 다음 4개의 매개변수를 받습니다. -

  • $패턴 − 이 매개변수는 정규식 패턴에 사용됩니다. 패턴에서 멀티바이트 문자를 사용할 수 있습니다.

  • $콜백 − 이 매개변수가 호출되어 주제 문자열에서 일치하는 요소의 배열을 전달하고 대체 문자열을 반환해야 합니다.

  • $string − 이 매개변수는 문자열을 확인하는 데 사용됩니다.

  • $options − 이 매개변수는 검색 옵션을 확인하는 데 사용됩니다.

참고 − 콜백 함수는 종종 mb_ereg_replace_callback()이 필요합니다. 한 곳에서. 익명 기능을 사용할 수도 있습니다. mb_ereg_replace_callback() 호출 내에서 콜백 선언 . 이를 사용하면 호출에 대한 모든 정보를 한 곳에서 사용할 수 있고 다른 곳에서는 사용되지 않는 콜백 함수 이름으로 함수 네임스페이스를 엉망으로 만들지 않습니다.

반환 값

mb_ereg_replace_callback() 결과 문자열에 대해 성공을 반환하거나 오류가 발생하면 False를 반환합니다. 문자열이 현재 인코딩에 유효하지 않으면 NULL을 반환합니다.

예시 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);
?>

출력

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

예시 2

익명 기능 사용

<?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);
?>

출력

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

참고 − 예제 2에서는 익명 함수를 사용하고 콜백 함수를 제거했지만 출력은 그대로 유지됩니다.