English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 기본 튜토리얼

PHP 고급 튜토리얼

PHP & MySQL

PHP 참조 매뉴얼

PHP preg_replace_callback() 함수 사용법 및 예제

PHP 정규 표현식 (PCRE)

preg_replace_callback 함수는 정규 표현식 검색을 수행하고 콜백을 사용하여 대체합니다.

문법

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 , int &$count ]] )

이 함수의 행동은 callback을 지정하여 대체 문자열을 계산하는 것 외에 preg_replace()와 동일합니다.

파라미터 설명:

  • $pattern: 검색할 패턴입니다. 문자열이나 문자열 배열이 될 수 있습니다.

  • $callback: 대체할 때마다 호출되는 콜백 함수입니다. 함수 호출 시 함수에 전달되는 매개변수는 subject에서 일치된 결과입니다.

  • $subject: 검색 대체할 목표 문자열 또는 문자열 배열입니다.

  • $limit: 선택 사항, 각 패턴이 각 subject 문자열에 대해 사용할 수 있는 최대 대체 횟수입니다. 기본 값은-1제한 없음).

  • $count: 선택 사항, 대체가 수행된 횟수입니다。

반환 값

subject가 배열이면 preg_replace_callback()는 배열을 반환하며, 다른 경우 문자열을 반환합니다. 오류가 발생하면 NULL을 반환합니다。

일치를 찾았다면, 대체된 목표 문자열(또는 문자열 배열)을 반환합니다. 다른 경우 subject는 변경되지 않고 반환됩니다。

온라인 예제

<?php
// 텍스트의 연도를 한 해 더 늘립니다.
$text = "어버이날은 04/01/2002\n";
$text.= "지난 크리스마스는 12/24/2001\n";
// 콜백 함수
function next_year($matches)
{
  // 보통: $matches[0]는 완성된 일치입니다
  // $matches[1]는 첫 번째 잡히는 그룹의 일치입니다
  // 이렇게 계속
  return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
            "|(?\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);
?>

실행 결과 다음과 같습니다:

어버이날은 04/01/2003
지난 크리스마스는 12/24/2002

PHP 정규 표현식 (PCRE)