လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> BBCode ကို HTML ကို preg_replace_callback_array မှတဆင့်ဘယ်လိုပြောင်းရမလဲ။

BBCode ကို HTML ကို preg_replace_callback_array မှတဆင့်ဘယ်လိုပြောင်းရမလဲ။

M66 2025-06-15

PHP တွင် BBCode သည် Photums, Message Boards စသဖြင့်အသုံးပြုသောပေါ့ပါးသည့် Markup ဘာသာစကားဖြစ်သည်။ ၎င်းသည်ရိုးရှင်းသော markup မှတစ်ဆင့်ရိုးရှင်းသောစာသားကိုရရှိစေသည်။ BBCode Syntax ၏ဘုံပုံစံများကို [B] (ရဲရင့်), [i] ( i] (စ ပုံအိပ်) ကဲ့သို့သောတံဆိပ်များပါဝင်သည်။ BBCode ကို HTML သို့ပြောင်းရန် PHP ၏ Built-in Expression function ကို preg_replace_callback_callback_array ကို သုံးနိုင်သည်။

1 ။ Preg_replace_callback_array ဆိုတာဘာလဲ။

Preg_replace_callback_array သည် PHP ၏ပုံမှန်အစားထိုးလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ရှုပ်ထွေးသော strings ပြောင်းလဲခြင်းနှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်အစားထိုးခြင်းများအပေါ် အခြေခံ. အစားထိုးရန်လိုအပ်သည့်အခါ၎င်းသည်အလွန်အသုံးဝင်သည်။

2 ။ BBCode ကို HTML သို့မည်သို့ပြောင်းလဲရမည်နည်း။

ကျွန်ုပ်တို့သည် Preg_replace_callback_array ကို အသုံးပြု. BBCode နှင့်ကိုက်ညီရန်ပုံမှန်အသုံးအနှုန်းများနှင့်ပေါင်းစပ်ပြီး callback functions များမှတဆင့်သတင်းအချက်အလက် hTML tags များသို့ပြောင်းလဲနိုင်သည်။ အောက်ပါသည် BBCode ကို HTML သို့အကောင်အထည်ဖော်ရန်ဥပမာတစ်ခုဖြစ်သည်။

 <?php

function bbcodeToHtml($text) {
    // အဓိပါ်ပယ် BBCode ကူးပြောင်း HTML ၏စည်းမျဉ်းများ
    $patterns = [
        // ရဲရင့်သော [b]ကပ်တံဆိပ်
        '/\[b\](.*?)\[\/b\]/is' => function($matches) {
            return '<strong>' . $matches[1] . '</strong>';
        },
        // စာလုံးစောင်း [i]ကပ်တံဆိပ်
        '/\[i\](.*?)\[\/i\]/is' => function($matches) {
            return '<em>' . $matches[1] . '</em>';
        },
        // ဟယ်လင် [url]ကပ်တံဆိပ်
        '/\[url=(.*?)\](.*?)\[\/url\]/is' => function($matches) {
            // ပြန်လည်နေရာချ URL ဒိုမိန်းအမည်ဖြစ်သည် m66.net
            $url = str_replace(parse_url($matches[1], PHP_URL_HOST), 'm66.net', $matches[1]);
            return '<a href="' . $url . '">' . $matches[2] . '</a>';
        },
        // ရုပ်ပုံ [img]ကပ်တံဆိပ်
        '/\[img\](.*?)\[\/img\]/is' => function($matches) {
            return '<img src="' . $matches[1] . '" alt="Image">';
        },
    ];

    // အသုံးပြု preg_replace_callback_array 进行ပြန်လည်နေရာချ
    return preg_replace_callback_array($patterns, $text);
}

// နမူနာ BBCode ဝင်ရောက်
$bbcode = "[b]Hello World[/b] Check out this website: [url=http://example.com]Click here[/url] and this image: [img]http://example.com/image.jpg[/img]";

// ကူးပြောင်း HTML
$html = bbcodeToHtml($bbcode);
echo $html;

?>
  • သက်ဆိုင်သောတက်(ဂ်)များ:

    HTML