လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ကုဒ်ကို Syntax ကို Syntax ကို Syntax ကိုအကောင်အထည်ဖော်ရန် Preg_replace_callback_array function ကိုအသုံးပြုနည်း။

PHP ကုဒ်ကို Syntax ကို Syntax ကို Syntax ကိုအကောင်အထည်ဖော်ရန် Preg_replace_callback_array function ကိုအသုံးပြုနည်း။

M66 2025-06-04

Syntax မီးမောင်းထိုးပြမှုသည်ဖွံ့ဖြိုးရေးကိရိယာများ, ဘလော့ဂ်အင်ဂျင်များသို့မဟုတ် code မျှဝေသည့်ပလက်ဖောင်းများကိုတည်ဆောက်သည့်အခါအရေးကြီးသောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ PHP ကိုယ်တိုင်က Php ကိုယ်တိုင်ကအဆင်သင့်မဖြစ်သေးသောစာကြည့်တိုက်များ၌ရှေ့တန်းနှင့်အတူ (ဥပမာ Prism.js သို့မဟုတ် Highlight.js) ကဲ့သို့သော PHP ကိုသုံးနိုင်သည်။ အခြေခံ Syntax မီးမောင်းထိုးပြခြင်းကိုအကောင်အထည်ဖော်ရန် PHP ကိုအသုံးပြုနိုင်သည်။ Preg_replace_callback_array () function သည်ကွဲပြားခြားနားသောကုဒ်များနှင့်ကွဲပြားခြားနားသောအရောင်များသို့မဟုတ်တံဆိပ်များဖြင့်ထုပ်ပိုးရန်အတိုချုပ်နှင့်ကြော့ရှင်းသောနည်းလမ်းဖြစ်သည်။

ဤဆောင်းပါးသည် Php Syntax Highlighter ကိုအကောင်အထည်ဖော်ရန် Preg_replace_callback_array () ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

preg_replace_callback_array ဆိုတာဘာလဲ

Preg_replace_callback_array () သည် PHP 7.0 တွင်မိတ်ဆက်ပေးသော function တစ်ခုဖြစ်သည်။ ပုံမှန်အသုံးအနှုန်းမျိုးစုံအတွက်မတူညီသော callback လုပ်ဆောင်ချက်များကိုသတ်မှတ်ရန်သင့်အားခွင့်ပြုသည်။ ၎င်းသည်စည်းမျဉ်းတစ်ခုစီကိုတစ်ချိန်ကခေါ်ဆိုမှုတစ်ခုစီအတွက်ရှင်းလင်းသောဖွဲ့စည်းတည်ဆောက်ပုံနှင့်ပိုမိုမြင့်မားသောထိရောက်မှုရှိသော preg_replace_callback () နှင့်နှိုင်းယှဉ်ပါကတောင်းဆိုရန်လိုအပ်သည်။

အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject);

ကျနော်တို့အောင်မြင်ရန်ချင်အကျိုးသက်ရောက်မှု

အောက်ပါဒြပ်စင်များကိုကျွန်ုပ်တို့မီးမောင်းထိုးပြလိုသည်။

  • PHP သော့ချက်စာလုံးများ (ဥပမာ function , echo , etc)

  • String (ထူးဆန်းပြီးနှစ်ဆကိုးကားခြင်းဖြင့်ဝိုင်းရံထားသောအကြောင်းအရာ)

  • မှတ်ချက်များ ( // Start or / * * ... * / )

  • variable ကို ( $ နှင့်အတူစတင်တည်ထောင်ခြင်း)

နမူနာကုဒ်

 <?php

$code = <<<'PHP'
<?php
// ဒါကမှတ်ချက်တစ်ခုပါ
function sayHello($name) {
    echo "Hello, $name!";
}
PHP;

function highlight_php_code(string $code): string {
    $keywords = ['function', 'echo', 'if', 'else', 'return'];
    $keywordPattern = '/\b(' . implode('|', $keywords) . ')\b/';
    $stringPattern = '/([\'"])(.*?)(\1)/s';
    $commentPattern = '/(\/\/.*?$|\/\*.*?\*\/)/ms';
    $variablePattern = '/(\$\w+)/';

    $patterns = [
        $keywordPattern => function ($matches) {
            return '<span style="color: blue; font-weight: bold;">' . $matches[0] . '</span>';
        },
        $stringPattern => function ($matches) {
            return '<span style="color: green;">' . htmlspecialchars($matches[0]) . '</span>';
        },
        $commentPattern => function ($matches) {
            return '<span style="color: gray; font-style: italic;">' . htmlspecialchars($matches[0]) . '</span>';
        },
        $variablePattern => function ($matches) {
            return '<span style="color: darkorange;">' . $matches[0] . '</span>';
        },
    ];

    // လုံခြုံကိုင်တွယ် HTML
    $code = htmlspecialchars($code);

    // ပထမ ဦး ဆုံးဖြစ်စဉ်ကို PHP ကပ်တံဆိပ်
    $code = preg_replace('/&lt;\?php/', '<span style="color: purple;">&lt;?php</span>', $code);

    // Grammar မီးမောင်းထိုးပြပါ
    return nl2br(preg_replace_callback_array($patterns, $code));
}

// output ကိုမီးမောင်းထိုးပြ HTML လုံးပေါင်းပြဌါန်းသည့်ဉပဒေ
echo highlight_php_code($code);

?>

output ကိုအကျိုးသက်ရောက်မှု

ဤကုဒ်ကိုကွပ်မျက်ခံရပြီးနောက် HTML format ရှိ string တစ်ခုဖြစ်ပြီး stryled php code များပါ 0 င်သည့် output ဖြစ်လိမ့်မည်။

  • သော့ချက်စာလုံးများသည် အပြာနှင့်အထူလှည့်

  • အဆိုပါ string အစိမ်းရောင်လှည့

  • မှတ်ချက်သည် မီးခိုးရောင်စာလုံးစောင်း ဖြစ်သည်

  • variable ကို မှောင်မိုက်လိမ်မော်ရောင် ဖြစ်ပါတယ်

သင်သည်သင်၏စာမျက်နှာသို့တိုက်ရိုက်ထည့်သွင်းနိုင်သည်။

 <pre style="background-color: #f9f9f9; padding: 10px;">
<?php echo highlight_php_code($code); ?>
</pre>

လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်၏ဥပမာများ

အကယ်. သင်သည် Code Sharing Platform ကိုရေးဆွဲနေလျှင်,

 https://m66.net/snippet/123

စာဖတ်နိုင်မှုကိုတိုးတက်စေရန်သုံးစွဲသူ PHP Code Details Phot အသေးစိတ်စာမျက်နှာရှိအသုံးပြုသူ PHP Code Snippets ကိုမီးမောင်းထိုးပြရန်ဤလုပ်ဆောင်မှုကိုသင်အသုံးပြုနိုင်သည်။

အကျဉ်းချုပ်

PREG_RERE_CALLAX_ANALBAX_ARRAY () PHP Syntax မီးမောင်းထိုးပြခြင်း, အကယ်. သင်ပိုမိုအဆင့်မြင့် syntax ခွဲခြမ်းစိတ်ဖြာနိုင်စွမ်းလိုအပ်ပါက PHP ၏ Tokenizer extension ကိုပေါင်းစပ်ခြင်းသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များ (ဥပမာ - hiplight.php) ကိုပေါင်းစပ်စဉ်းစားပါ။