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 () သည် 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('/<\?php/', '<span style="color: purple;"><?php</span>', $code);
// Grammar မီးမောင်းထိုးပြပါ
return nl2br(preg_replace_callback_array($patterns, $code));
}
// output ကိုမီးမောင်းထိုးပြ HTML လုံးပေါင်းပြဌါန်းသည့်ဉပဒေ
echo highlight_php_code($code);
?>
ဤကုဒ်ကိုကွပ်မျက်ခံရပြီးနောက် 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) ကိုပေါင်းစပ်စဉ်းစားပါ။