현재 위치: > 최신 기사 목록> preg_replace_callback_array를 사용하여 태그 구동 데이터 주입을 구현하십시오

preg_replace_callback_array를 사용하여 태그 구동 데이터 주입을 구현하십시오

M66 2025-06-02

PHP 개발에서 문자열 교체는 매우 일반적인 작업입니다. 다른 마커 세트에 따라 다양한 방식으로 텍스트를 교체해야 할 때 preg_replace_callback_array 가 특히 편리합니다.

이 기사에서는 preg_replace_callback_array를 사용하여 "마크 구동"데이터 주입 메커니즘을 구현하는 방법을 보여 주므로 템플릿 문자열에 데이터를 유연하게 포함시킬 수 있습니다.

preg_replace_callback_array 란 무엇입니까?

preg_replace_callback_array 는 PHP 7에 도입 된 함수입니다. 정규식 세트와 해당 콜백 함수 세트를 통해 문자열을 교체 할 수 있습니다.

서명은 다음과 같습니다.

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null): string

응용 프로그램 시나리오 : 태그 중심 데이터 주입

예를 들어 여러 다른 유형의 태그가 포함 된 텍스트 단락이있는 상황을 상상해보십시오.

 방문에 오신 것을 환영합니다[[url:/welcome]],현재 시간은입니다{{time}}。

[[url :/Welcome]]을 하이퍼 링크로, {{time}}을 현재 시간으로 바꾸고 싶습니다.

1 단계 : 일반 및 콜백 함수를 정의합니다

우리는 태그와 일치하기 위해 두 가지 정규식을 사용합니다.

  • \ [\ [url : (.*?) \] \]는 URL 유형의 태그와 일치하는 데 사용됩니다.

  • \ {\ {time \} \}는 타임 스탬프와 일치하는 데 사용됩니다.

 $template = '방문에 오신 것을 환영합니다[[url:/welcome]],현재 시간은입니다{{time}}。';

$patterns = [
    '/\[\[url:(.*?)\]\]/' => function ($matches) {
        $path = $matches[1];
        return '<a href="https://m66.net' . htmlspecialchars($path) . '">여기를 클릭하십시오</a>';
    },
    '/\{\{time\}\}/' => function () {
        return date('Y-m-d H:i:s');
    },
];

$output = preg_replace_callback_array($patterns, $template);

echo $output;

출력 결과 :

 방문에 오신 것을 환영합니다<a href="https://m66.net/welcome">여기를 클릭하십시오</a>,현재 시간은입니다2025-04-21 14:30:00。

참고 : 실제 시간은 달리는 시간에 따라 다릅니다.

preg_replace_callback_array를 사용합니까?

이 접근법은 전통적인 다중 preg_replace_callback 또는 문자열 교체에 비해 몇 가지 장점이 있습니다.

  1. 명확한 구조 : 모든 패턴과 교체 로직은 하나의 어레이에 집중되어 유지하기 쉽습니다.

  2. 보다 효율적인 실행 : 모든 모드는 여러 텍스트 스캔없이 한 번에 처리 할 수 ​​있습니다.

  3. 강력한 확장 성 : 새 태그를 추가하려면 배열에 항목을 추가하면 다른 코드를 수정할 필요가 없습니다.

확장 : 더 많은 태그를 지원합니다

사용자 이름, 랜덤 숫자 등과 같은보다 동적 태그를 지원하려면 $ Patterns Array를 계속 확장하십시오.

 $patterns['/\{\{user\}\}/'] = function () {
    return 'Xiao Ming';
};

$patterns['/\{\{rand\}\}/'] = function () {
    return rand(1, 100);
};

그런 다음 다음과 같은 템플릿에서 사용하십시오.

 환영,{{user}}!당신의 행운의 번호는:{{rand}}。

요약

preg_replace_callback_array를 사용하여 태그 중심 데이터 분사 엔진을 쉽게 구현할 수 있습니다. 그것은 의미 론적 일뿐 만 아니라 확장 가능성이 높으며 템플릿 시스템, 컨텐츠 처리, 풍부한 텍스트 탈출 및 기타 시나리오에 사용하기에 매우 적합합니다.

이 기사 가이 기능을 이해하고 사용하는 데 도움이되기를 바랍니다. 경량 템플릿 엔진 또는 컨텐츠 렌더링 도구를 개발하는 경우이 방법을 고려하여 코드의 품질과 유연성을 향상시킵니다.