လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP နုံကြိုး string နှင့်ကိုက်ညီသော PHP NEANT String ၏အသေးစိတ်ရှင်းပြချက်

PHP နုံကြိုး string နှင့်ကိုက်ညီသော PHP NEANT String ၏အသေးစိတ်ရှင်းပြချက်

gitbox 2025-06-15

1 ။ နုံ algorithm မိတ်ဆက်

နယူး algorithms သည်အခြေခံနှင့်အလိုလိုသိသော string matching method တစ်ခုဖြစ်သည်။ algorithm သည်စာသား၏ဇာတ်ကောင်များကိုစာသား၏ပထမဇာတ်ကောင်ကိုစာသား၏ပထမ ဦး ဆုံးဇာတ်ကောင်နှင့်စာသား၏အဆုံးကိုတွေ့နိုင်သည်။

2 ။ နုံ algorithms ၏အကောင်အထည်ဖော်မှု

2.1 ကုဒ်အကောင်အထည်ဖော်မှု

အောက်ဖော်ပြပါ PHP ကို ​​အသုံးပြု. Naive String နှင့်ကိုက်ညီသော algorithm ၏နမူနာကုဒ်ဖြစ်သည်။

 
function naive_search($text, $pattern) {
    $n = strlen($text);
    $m = strlen($pattern);
    for ($i = 0; $i <= $n - $m; $i++) {
        $j = 0;
        while ($j < $m && $text[$i + $j] == $pattern[$j]) {
            $j++;
        }
        if ($j == $m) {
            return $i;
        }
    }
    return -1;
}

function သည် string parameters နှစ်ခုကိုလက်ခံသည်, $ စာသားကိုရှာဖွေရန်စာသားကိုရှာဖွေရန်စာသားသည်ပုံစံနှင့်ကိုက်ညီမည့်ပုံစံဖြစ်သည်။ algorithm သည်စာသားနှင့်ပုံစံဇာတ်ကောင်ကိုစာလုံးအသေးဖြင့်အက္ခရာစဉ်ဖြင့်နှိုင်းယှဉ်ထားသည်။ ပွဲအောင်မြင်သောအခါ၎င်းသည်ပထမအကြိမ်ဖြစ်စဉ်ကိုပြန်လည်ရောက်ရှိလာပြီးမကိုက်ညီပါက၎င်းသည်ပြန်လည်ရောက်ရှိသည်။

2.2 ကုဒ်ခွဲခြမ်းစိတ်ဖြာ

function တွင် $ n နှင့် $ မီတာသည်စာသားနှင့်ပုံစံတို့၏အရှည်ကိုအသီးသီးကိုယ်စားပြုသည်။ အပြင်ဘက်တွင်ကွင်းဆက်သည်စာသား၏ scan အကွာအဝေးကိုထိန်းချုပ်သည်။ ကျန်အပိုင်းသည်ပုံစံအရှည်နှင့်ကိုက်ညီရန်လုံလောက်သည်။ Inner Loop သည်စာသားကိုပုံစံဖြင့်ပုံစံဖြင့်ပုံဖော်ခြင်းကိုပုံဖော်ခြင်းနှင့်နှိုင်းယှဉ်လျှင်မတိုက်ဆိုင်မှုသည်မတိုက်ဆိုင်မှုသို့မဟုတ်ပွဲပြီးစီးသည်အထိနှင့်နှိုင်းယှဉ်ထားသည်။ ပွဲစဉ်အောင်မြင်သောအခါအစအညွှန်းကိန်းကိုပြန်ပို့ပါ။ မဟုတ်ရင် -1 loop အဆုံးသတ်ပြီးနောက် -1 ပြန်လာလိမ့်မည်။

3 ။ နုံ algorithms ၏လျှောက်လွှာ

3.1 string ကိုက်ညီမှု

နုံ algorithms များကိုစာသားတွင်အလွှာတစ်ခုရှိ, နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 
$text = "Hello, world!";
$pattern = "world";
$result = naive_search($text, $pattern);
echo $result;  // ထုတ်လုပ်ခြင်း 7

ဤဥပမာတွင် $ စာသားသည် target string နှင့် $ ပုံစံဖြစ်သည်။ function ကိုပြန်လာတန်ဖိုးသည်အလွှာပထမ ဦး ဆုံးပေါ်လာသည့်နေရာ၏အညွှန်းကိန်းဖြစ်သည်။

3.2 ပုံစံကိုက်ညီမှု

ရိုးရှင်းသော string ရှာဖွေမှုများအပြင်, နုံ algorithms သည်ပုံမှန်စကားရပ်အခြေပြုရှာဖွေမှုကဲ့သို့သောပုံစံကိုက်ညီမှုများကိုလည်းကူညီနိုင်သည်။ အောက်ပါဥပမာသည် HTML code ရှိလင့်ခ်များကိုမည်သို့ရှာရမည်ကိုပြသသည်။

 
$html = "<html><body><a href='http://example.com'>Example</a></body></html>";
$pattern = "<a href='(.*?)'>(.*?)</a>";
preg_match_all("/$pattern/s", $html, $matches);
print_r($matches);  // ထုတ်လုပ်ခြင်း匹配结果

ဤဥပမာတွင်ပုံမှန်အသုံးအနှုန်းပုံစံကို HTML ရှိလင့်ခ်များအားလုံးကိုရှာဖွေပြီးကိုက်ညီသည့် Array ရလဒ်များကိုပြန်ပို့ရန်အသုံးပြုသည်။

4 ။ နုံ algorithms ၏စွမ်းဆောင်ရည်ခွဲခြမ်းစိတ်ဖြာခြင်း

နုံ algorithm ၏ရှုပ်ထွေးမှုသည် O (NM) သည် O (NM) ဖြစ်သည်။ n သည်စာသားအရှည်ဖြစ်ပြီး M သည်ပုံစံအရှည်ဖြစ်သည်။ စွမ်းဆောင်ရည်သည်အဆင့်မြင့် algorithms နှင့်မတူသော်လည်း၎င်း၏ဖွဲ့စည်းပုံသည်ရိုးရှင်းပြီးနားလည်ရန်လွယ်ကူသည်။ တိုတောင်းသော MODE string string ကိုရှာဖွေခြင်းအတွက်စွမ်းဆောင်ရည်သည်လက်ခံနိုင်ဖွယ်ရှိသည်။ သို့သော် mode string ၏အရှည်တိုးလာသည်နှင့်အမျှစွမ်းဆောင်ရည်သိသိသာသာကျဆင်းသွားသည်မှာသိသိသာသာကျဆင်းသွားသည်။

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

algorithm နှင့်ကိုက်ညီမှုအရှိဆုံး string နှင့်ကိုက်ညီသောအရာနှင့်ကိုက်ညီသော algorithm တွင်ရိုးရိုးရှင်းရှင်းနှင့်ထိုးထွင်းသိမြင်မှုအကောင်အထည်ဖော်မှု၏အားသာချက်များရှိပြီးအခြေခံပုံစံရှာဖွေရေးလုပ်ငန်းများအတွက်သင့်တော်သည်။ ၎င်းသည်စာသားနှင့်ပုံစံများကိုရှင်းရှင်းလင်းလင်းဖြစ်စဉ်တစ်ခုရရှိရန်ဇာတ်ကောင်ဖြင့်အက္ခရာများဖြင့်နှိုင်းယှဉ်သည်။ ထိရောက်မှုရှိသည့်အကန့်အသတ်များရှိသော်လည်း၎င်းသည်လက်တွေ့ကျသောအသုံးချမှုများအတွက်လက်တွေ့ကျသောတန်ဖိုးများ,