လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> File အမည်များကို strnatcmp ကို အသုံးပြု. sorting လုပ်ရန်သိကောင်းစရာများ

File အမည်များကို strnatcmp ကို အသုံးပြု. sorting လုပ်ရန်သိကောင်းစရာများ

gitbox 2025-05-27

File Name Sorting ကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါ PHP သည် "သဘာဝကျကျခွဲထားသည့်" နည်းလမ်းတစ်ခုတွင်ကြိုးများကိုနှိုင်းယှဉ်ထားနိုင်သည့်အလွန်လက်တွေ့ကျသော function strnatcmp () ကိုထောက်ပံ့ပေးသည်။ ရိုးရာအစဉ်အလာနှင့်မတူသည်နှင့်မတူဘဲသဘာဝ sorting သည် file2.txt ကို file10.txt မတိုင်မီအဆင့်သတ်မှတ်မည်။ နံပါတ်များပါ 0 င်သည့်ဖိုင်အမည်များကိုကိုင်တွယ်သောအခါ၎င်းသည်အထူးသဖြင့်အသုံးဝင်သည်။ ဤဆောင်းပါးသည် strnatcmp ၏အသုံးပြုမှုနှင့် ပတ်သက်. လက်တွေ့ကျသောနည်းစနစ်အချို့နှင့်အများအားဖြင့်ကြိုတင်ကာကွယ်မှုများပြုလုပ်သွားမည်။

1 ။ အခြေခံအသုံးပြုမှု

strnatcmp () string parameters နှစ်ခုကိုလက်ခံပြီးနှိုင်းယှဉ်မှုရလဒ်ကိုကိုယ်စားပြုရန်ကိန်းတန်ဖိုးကိုပြန်လည်ပေးအပ်သည်။

 <?php
echo strnatcmp("file2.txt", "file10.txt"); // ထုတ်လုပ်ခြင်း -1
?>

အမှန်တကယ် sorting တွင်၎င်းကို များသောအားဖြင့်အသုံးပြုလေ့ရှိသည် ()) ဖြင့်အသုံးပြုသည်။

 <?php
$files = ["file10.txt", "file2.txt", "file1.txt"];
usort($files, "strnatcmp");
print_r($files);
?>

ထုတ်လုပ်မှု -

 Array
(
    [0] => file1.txt
    [1] => file2.txt
    [2] => file10.txt
)

2 ။ ဖြစ်ရပ် sensitivity ပြ issues နာများ

strnatcmp () သည်စာလုံးအကြီးအသေးအရေးကြီးသည်။ အချို့ကိစ္စများတွင်အချို့သောကိစ္စရပ်များတွင်မျှော်လင့်ထားသည့်အတိုင်းမဖြစ်ရန်ဖြစ်နိုင်သည်။ ဥပမာအားဖြင့်:

 <?php
$files = ["File2.txt", "file10.txt"];
usort($files, "strnatcmp");
print_r($files);
?>

အမှုအားလျစ်လျူရှုရန် strnatcasecmp () ကို သုံးနိုင်သည်။

 <?php
usort($files, "strnatcasecmp");
?>

3 ။ sorting အတွက်ဖိုင်လမ်းကြောင်းများအတွက်အပြောင်းအလဲနဲ့ကျွမ်းကျင်မှု

ဖိုင်လမ်းကြောင်းတွင် ( ပုံများ / file2.jpg နှင့် images2.jpg နှင့် images / file / file )) ကိုအသုံးပြုခြင်းသည် strnatcmp () ကိုအသုံးပြုခြင်းသည် directory directory struction ကိုဖြေရှင်းနိုင်သည်။ ထို့ကြောင့်သင်သည်ဖိုင်အမည်ကိုပထမယူပြီး၎င်းကိုစီလိုက်နိုင်သည်။

 <?php
$paths = ["images/file10.jpg", "images/file2.jpg"];
usort($paths, function($a, $b) {
    return strnatcmp(basename($a), basename($b));
});
?>

4 ။ ဖိုင် extensions များ၏သက်ရောက်မှု

သဘာဝ sorting သည် extension များကို string တစ်ခုအနေဖြင့်ရယူသည်။ အကယ်. သင်သည် Sorting Extension ကိုလျစ်လျူရှုရန်လိုအပ်ပါကနောက်ဆက်ကိုဖယ်ရှားပြီးသင်နှိုင်းယှဉ်နိုင်သည်။

 <?php
function strip_extension($filename) {
    return pathinfo($filename, PATHINFO_FILENAME);
}

$files = ["image10.png", "image2.jpg"];
usort($files, function($a, $b) {
    return strnatcmp(strip_extension($a), strip_extension($b));
});
?>

5 ။ ရောနှော directory နှင့် file sorize ကို၏အပြောင်းအလဲနဲ့

အစစ်အမှန်ဘဝလျှောက်လွှာများတွင်လမ်းညွှန်များနှင့်ဖိုင်များသည်မကြာခဏအတူတကွရောနှောနေကြသည်။ sorting လုပ်တဲ့အခါ, သင်ဟာ directory ကိုသူတို့ရှေ့မှာရှိနေစေချင်တယ်။ ၎င်းကို is_dir () နှင့် strnatcmp နှင့်ပေါင်းစပ်နိုင်သည်။

 <?php
$entries = ["docs", "image2.jpg", "image10.jpg"];
usort($entries, function($a, $b) {
    $a_is_dir = is_dir("gitbox.net/files/" . $a);
    $b_is_dir = is_dir("gitbox.net/files/" . $b);

    if ($a_is_dir && !$b_is_dir) return -1;
    if (!$a_is_dir && $b_is_dir) return 1;
    return strnatcmp($a, $b);
});
?>

မှတ်စု: is_dir () ကို မှန်ကန်စွာခွဲခြားသိမြင်နိုင်ရန်အတွက်လမ်းကြောင်းသည်အမှန်တကယ်ဖြစ်ရန်လိုအပ်သည်။ အကယ်. ၎င်းသည် virtual path ဖြစ်ခဲ့လျှင်ဖိုင်အမျိုးအစားကိုအခြားနည်းများဖြင့်မှတ်သားနိုင်သည်။

6 ။ ပိုမိုရှုပ်ထွေးသော sorting ယုတ္တိဗေဒအောင်မြင်ရန်သဘာဝ sorting ကိုပေါင်းစပ်ခြင်း

ပိုမိုရှုပ်ထွေးသော Sorting Logic ကိုရရှိရန်အတွက်သဘာဝအစဉ်အလာအမျိုးမျိုး, timestamps များစသဖြင့်ပြုလုပ်နိုင်သည်။ ဥပမာအားဖြင့်, ဖိုင်အမည်များကိုသဘာဝကျကျ sorting လုပ်ပြီးနောက်၎င်းတို့ကိုပြုပြင်မွမ်းမံသည့်အချိန်တွင်အစဉ်အလာတွင်ခွဲထားလော့။

 <?php
$files = ["file10.txt", "file2.txt", "file1.txt"];
usort($files, function($a, $b) {
    $result = strnatcmp($a, $b);
    if ($result === 0) {
        return filemtime("gitbox.net/uploads/" . $b) - filemtime("gitbox.net/uploads/" . $a);
    }
    return $result;
});
?>

7 ။ သက်ဆိုင်သောအခြေအနေများနှင့်မစွမ်းနိုင်သောအခြေအနေများ

သက်ဆိုင်သည့်အခြေအနေများ:

  • ဒစ်ဂျစ်တယ်အစီအစဉ်များ (ဥပမာ screenshots များ, ဗွီဒီယိုဘောင်များ, မှတ်တမ်းများစသဖြင့်ဖိုင်အမည်များဖြင့်ဖိုင်အမည်များ)

  • အသုံးပြုသူများကိုအလိုလိုသိနားလည်ရန်လိုအပ်သောနည်းလမ်းများကို sorting နည်းလမ်းများ

  • Directory browser (ဘရောက်ဆာ) များနှင့်ဖိုင်မန်နေဂျာများကဲ့သို့သော interface-friendly applications များ

သက်ဆိုင်သည့်အခြေအနေများမဟုတ်ပါ။

  • တင်းကျပ်သောစက်အသိအမှတ်ပြုခြင်း (ဥပမာ hash တန်ဖိုးနှင့် encoding စည်းမျဉ်းများကဲ့သို့)

  • စာလုံးအကြီးအသေးအရေးမကြီးသောသို့မဟုတ် Non-Standard Naming ဇာတ်လမ်းဖြစ်စဉ်များ

ကောက်ချက်

strnatcmp () သည် PHP တွင်သဘာဝ sorting ဖြင့်ကိုင်တွယ်ရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် File Name Sorting ၏အသုံးပြုသူအတွေ့အကြုံကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ၎င်း၏အသုံးပြုမှုနှင့်ကြိုတင်ကာကွယ်မှုများပြုလုပ်ရာများကိုကျွမ်းကျင်ပိုင်ခွင့်ပြုခြင်းသည်လုပ်ငန်းသုံးစွဲနှင့်သက်ဆိုင်သော application များ၌ကျွန်ုပ်တို့ကိုပိုမိုသက်တောင့်သက်သာဖြစ်စေနိုင်သည်။ အသုံးပြုမှုတွင်အမှုအားလျစ်လျူရှုရန်, ဖိုင်အမည်များကိုကူးယူရန်လိုအပ်ပါသလား, သို့မဟုတ်အမှန်တကယ်ဇာတ်လမ်းတွဲအပေါ် အခြေခံ. အစစ်အမှန်ပါ 0 င်ခြင်းရှိ,