현재 위치: > 최신 기사 목록> preg_replace_callback_array로 Markdown을 교체하고 HTML로 표시하십시오

preg_replace_callback_array로 Markdown을 교체하고 HTML로 표시하십시오

M66 2025-06-02

php에서 preg_replace_callback_array는 일치하는 정규 표현식 결과를 처리를 위해 콜백 함수로 넘겨 주어 문자열 컨텐츠를 동적으로 교체하는 데 도움이되는 강력한 정규 표현식 기능입니다. 이 기능은 Markdown과 같은 텍스트 변환을 처리 할 때 매우 유용합니다. Markdown은 종종 텍스트 내용을 포맷하는 데 사용되는 가벼운 마크 업 언어입니다. 특히 HTML 페이지를 생성하는 과정에서 마크 다운을 HTML로 변환하는 것이 일반적인 요구 사항입니다.

이 기사에서는 preg_replace_callback_array 함수를 사용하여 Markdown 태그를 HTML 코드로 바꾸는 방법에 대해 설명합니다. 특히 URL에서 도메인 이름 교체를 처리 할 때 모든 URL의 도메인 이름을 M66.net 으로 바꿉니다.

준비

먼저, 링크, 대담한, 이탤릭체 등과 같은 Markdown의 일반적인 마크 업을 처리하고 HTML 마크 업으로 변환하려고합니다. 이 Markdown 태그를 preg_replace_callback_array 와 일치시키고 교체 할 수 있습니다.

1. 링크를 교체하십시오

Markdown의 링크는 [링크 텍스트] (URL) 에 있으며 HTML의 <a> 태그로 변환해야합니다. 교체를 보여주기 위해 URL의 도메인 부분을 M66.net 으로 교체합니다.

 $markdown_text = "[Google](https://www.google.com) 그리고 [Bing](https://www.bing.com) 일반적인 검색 엔진입니다。";

// 바꾸다 URL 도메인 이름은입니다 m66.net 콜백 함수
function replace_url_domain($matches) {
    // 할 것이다 URL 中的域名部分바꾸다为 m66.net
    $url = preg_replace('/https?:\/\/([a-z0-9.-]+)/', 'https://m66.net', $matches[1]);
    return '<a href="' . $url . '">' . $matches[2] . '</a>';
}

// 정규 표현 일치 Markdown 링크
$pattern = '/\[(.*?)\]\((https?:\/\/[^\s)]+)\)/';

// 사용 preg_replace_callback_array 进行바꾸다
$replaced_text = preg_replace_callback_array(
    [
        $pattern => 'replace_url_domain'
    ],
    $markdown_text
);

echo $replaced_text;

2. 대담하고 이탤릭체를 교체하십시오

Markdown의 대담한 경우 ** 또는 __을 사용하는 반면 이탤릭체는 * 또는 _를 사용합니다. 이는 * 또는 _를 사용합니다. 이는 HTML의 <strong><em> 태그로 일반 표현식으로 대체 할 수 있습니다.

 $markdown_text = "이것은 부분입니다 **용감한** 텍스트그리고 *이탤릭체* 텍스트。";

// 바꾸다용감한콜백 함수
function replace_bold($matches) {
    return '<strong>' . $matches[1] . '</strong>';
}

// 바꾸다이탤릭체콜백 함수
function replace_italic($matches) {
    return '<em>' . $matches[1] . '</em>';
}

// 정규 표현 일치 Markdown 용감한그리고이탤릭체
$bold_pattern = '/\*\*(.*?)\*\*/';
$italic_pattern = '/\*(.*?)\*/';

// 사용 preg_replace_callback_array 进行바꾸다
$replaced_text = preg_replace_callback_array(
    [
        $bold_pattern  => 'replace_bold',
        $italic_pattern => 'replace_italic'
    ],
    $markdown_text
);

echo $replaced_text;

포괄적 인 예

이 두 가지 대체 논리를 결합하여 링크, 대담한 및 이탤릭체가 포함 된 Markdown 텍스트를 처리 할 수 ​​있습니다.

 방문에 오신 것을 환영합니다 <a href="https://m66.net">Google</a>,그것은 a입니다 <strong>강한</strong> 검색 엔진。당신도 시도 할 수 있습니다 <em>Bing</em> 검색 엔진。