လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> URL parameters တွေကို Extract လုပ်ပြီး routing processing အတွက်လင့်များကိုပြန်လည်ရေးပါ

URL parameters တွေကို Extract လုပ်ပြီး routing processing အတွက်လင့်များကိုပြန်လည်ရေးပါ

M66 2025-06-02

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် routing processing သည်ခေတ်သစ် web applications များကိုတည်ဆောက်ခြင်း၏အရေးကြီးသောအပိုင်းဖြစ်သည်။ Routing မှတစ်ဆင့်ကျွန်ုပ်တို့သည်တောင်းဆိုထားသော URL ကို အခြေခံ. parameters များကို အခြေခံ. အသုံးပြုသူတောင်းဆိုချက်များကိုမည်သို့တုံ့ပြန်ရမည်ကိုဆုံးဖြတ်နိုင်သည်။ ဤဆောင်းပါးသည် Php PREG_replace_Callback_array function ကိုမည်သို့အသုံးပြုရမည်, ပုံမှန်အသုံးအနှုန်းများကိုပေါင်းစပ်ခြင်း,

1 ။ Preg_replace_callback_array

Preg_replace_callback_array သည် PHP 7.0+ သို့ထည့်သွင်းထားသော function အသစ်တစ်ခုဖြစ်သည်။ ၎င်းသည်ကျွန်ုပ်တို့အားပုံမှန်အသုံးအနှုန်းများကိုတစ်ပြိုင်နက်တည်းခေါ်ဆိုခြင်းလုပ်ငန်းများကိုတစ်ပြိုင်တည်းသတ်မှတ်ရန်ခွင့်ပြုရန်ခွင့်ပြုသည်။ ဤနည်းလမ်းသည် preg_replace_callback ကို အကြိမ်ပေါင်းများစွာခေါ်ဆိုခြင်းထက် ပို. ကြော့ရှင်း။ ထိရောက်မှုရှိသည်။

function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 string preg_replace_callback_array(array $patterns_and_callbacks, string $subject, int $limit = -1, int &$count = null)
  • $ patternals_and_callbacks - တွဲဖက်ခင်းကျင်းမှုတစ်ခုဖြစ်ပြီး Key သည်ပုံမှန်စကားရပ်ဖြစ်ပြီးတန်ဖိုးသည်သက်ဆိုင်ရာ callback function ဖြစ်သည်။

  • $ အကြောင်းအရာ - လုပ်ငန်းများ၌တင်ရန် string ကို။

  • $ ကန့်သတ်ချက် - အများဆုံးအစားထိုးနံပါတ်များ, ကန့်သတ်ချက်မရှိပါ။

  • $ ရေတွက် : အစားထိုးအကြိမ်အရေအတွက်။

2 ။ လုပ်ဆောင်ခြင်းဇာတ်လမ်းခွဲခြမ်းစိတ်ဖြာခြင်း

ကျွန်ုပ်တို့တွင်အောက်ပါ URL လမ်းကြောင်းပုံစံများရှိသည်ဆိုပါစို့။

  • / အသုံးပြုသူ / 123 ဆိုသည်မှာ User ID 123 နှင့်သုံးစွဲသူစာမျက်နှာကို သုံး. အသုံးပြုသည်။

  • / 456 / Edit သည် Edit ID နှင့်အတူဆောင်းပါးတစ်ပုဒ်ကိုဆိုလိုသည် 456 ၏ဆောင်းပါးတစ်ပုဒ်ကိုဆိုသည်။

  • အမျိုးအစား / နည်းပညာ / စာမျက်နှာ / 2 သည် အမျိုးအစားခွဲခြားခြင်းစာမျက်နှာနှင့် pagination ကိုကိုယ်စားပြုသည်။

ကျွန်ုပ်တို့သည်ဤ URL များကိုပုံမှန်အသုံးအနှုန်းများဖြင့်ကိုက်ညီစေလိုပြီးနောက်ဆက်တွဲအပြောင်းအလဲအတွက်သက်ဆိုင်ရာ parameters များကိုထုတ်ယူလိုပါသည်။ ဤအတောအတွင်း, link ကိုပုံစံအသစ်သို့ပြန်လည်ရေးရန်မည်သို့သရုပ်ပြပါ။

3 ။ နမူနာကုဒ်

 <?php
// simulated တောင်းဆိုမှုများ URL ခေြလမ်း
$urlPath = '/post/456/edit';

// သွား preg_replace_callback_array ကွဲပြားခြားနားသောလမ်းကြောင်းများ၏အသုတ်,နှင့် parameters တွေကိုထုတ်ယူ
$result = preg_replace_callback_array([
    // အသုံးပြုသူစာမျက်နှာနှင့်ကိုက်ညီ:/user/{id}
    '#^/user/(\d+)$#' => function ($matches) {
        $userId = $matches[1];
        // ပြန်လည်ရေးရေးစည်းမျဉ်းသည်ဟုယူဆသည်:/profile.php?user={id}
        return "/profile.php?user=$userId";
    },
    // Match ဆောင်းပါးတည်းဖြတ်ခြင်းစာမျက်နှာ:/post/{id}/edit
    '#^/post/(\d+)/edit$#' => function ($matches) {
        $postId = $matches[1];
        // အဖြစ်ပြန်လည်ရေး:/edit_post.php?post={id}
        return "/edit_post.php?post=$postId";
    },
    // အမျိုးအစားခွဲခြားထားသောစာမျက်နှာများ:/category/{name}/page/{num}
    '#^/category/([\w-]+)/page/(\d+)$#' => function ($matches) {
        $category = $matches[1];
        $page = $matches[2];
        // အဖြစ်ပြန်လည်ရေး:/category.php?cat={name}&page={num}
        return "/category.php?cat=$category&page=$page";
    },
], $urlPath);

// ဒိုမိန်းအမည်အားလုံးကိုအစားထိုးပါ m66.net,ပြီးပြည့်စုံသောထုတ်လုပ်ရန်လိုအပ်ကြောင်းယူဆ URL
$finalUrl = preg_replace('#https?://[^/]+#', 'https://m66.net', $result);

// output ကိုပြန်လည်ရေးသားခြင်းဖြစ်ပါတယ် URL
echo $finalUrl;

4 ။ ကုဒ်ဖော်ပြချက်

  • သုံး URL လမ်းကြောင်းပုံစံသုံးခုနှင့်ကိုက်ညီရန်ပုံမှန်အသုံးအနှုန်းသုံးခုကိုကုဒ်တွင်အသုံးပြုသည်။

  • preg_replace_callback_array သည် ကိုက်ညီသောအခြေအနေနှင့်အညီသက်ဆိုင်ရာ callback function ကိုခေါ်ဆိုခြင်းနှင့်ပြန်လည်ရေးထားသော URL လမ်းကြောင်းကိုပြန်ပို့သည်။

  • ဥပမာမှာတော့ကျွန်တော်တို့ဟာ query string တစ်ခုထဲကိုပြန်ရေးထားတဲ့လမ်းကြောင်းကိုဖြတ်သန်းသွားတယ်။

  • နောက်ဆုံးအနေဖြင့်လိုက်လျောညီထွေရှိသောဒိုမိန်းအမည်အားလုံးကို M66.net မှတဆင့် M66.net မှတဆင့် preg_replace ဖြင့်အစားထိုးပါ။

5 ။ လျှောက်လွှာတိုးချဲ့ခြင်း

  • ကိုက်ညီသော parameter များကို controller သို့မဟုတ်လုပ်ငန်းလည်ပတ်မှုအတွက်လုပ်ငန်းလည်ပတ်မှုအတွက်လုပ်ငန်းလည်ပတ်မှုအတွက်လုပ်ငန်းလည်ပတ်မှုအတွက်လုပ်ဆောင်နိုင်သည့်လုပ်ငန်းလည်ပတ်မှုအတွက်လုပ်ဆောင်နိုင်သည်။

  • လိုအပ်ချက်များနှင့်အညီ routing mode များနှင့်သက်ဆိုင်ရာ callbacks များကိုတိုးချဲ့ပါ။

  • အစစ်အမှန်စီမံကိန်းများတွင်ဒိုမိန်းအမည်အစားထိုးအပိုင်းကိုတိကျခိုင်မာသည့် URL parsing စာကြည့်တိုက် (ဥပမာ - Parse_url ) နှင့်အတူကိုင်တွယ်နိုင်သည်။

6 ။ အကျဉ်းချုပ်

Preg_replace_CAllback_array မှတဆင့် PHP routing process သည်ပိုမိုတိကျမှုနှင့်အကျိုးရှိလာသည်။ ၎င်းသည် URL parameters တွေကိုထုတ်ယူရန်အတွက်အဆင်ပြေသည်။ Domain Name အစားထိုးစစ်ဆင်ရေးနှင့်ပေါင်းစပ်ပြီး, သင်တောင်းဆိုချက်အချက်များမှဆာဗာလိပ်စာကိုလည်းထိန်းချုပ်နိုင်သည်။

PHP routing တွင်ဤနည်းပညာ၏လက်တွေ့ကျသောအသုံးချမှုကိုနားလည်သဘောပေါက်ရန်မျှော်လင့်ပါသည်။