preg_replace_callback 함수

preg_replace_callback 함수는 콜백 함수를 사용하여 정규 표현식으로 검색하고 치환합니다. 첫 번째 매개변수로 정규 표현식을, 두 번째로 콜백 함수를, 세 번째로 처리할 문자열을 받습니다. 콜백 함수는 일치하는 항목의 배열을 받아 치환 문자열을 반환해야 합니다.

구문

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

예시

문자열의 모든 숫자를 제곱값으로 변경합니다:

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

코드 실행 결과:

php'Numbers: 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,