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