လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> CSV strings များကို exploit နှင့် array_combine ပေါင်းစပ်ခြင်း

CSV strings များကို exploit နှင့် array_combine ပေါင်းစပ်ခြင်း

M66 2025-06-07

PHP တွင် CSV format ဖြင့်လုပ်ဆောင်ခြင်းအချက်အလက်များသည်အထူးသဖြင့်တန်ဖိုးများပါ 0 င်သောကြိုးများသို့မဟုတ်ကြိုးများကိုပြုလုပ်ရန်လိုအပ်သည့်အခါဘုံလုပ်ငန်းတစ်ခုဖြစ်သည်။ Exploit နှင့် array_combine သည် PHP တွင်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်များဖြစ်ပြီး၎င်းတို့သည် strings segment segression များကိုထိရောက်စွာ segment လုပ်ပြီးဆက်စပ်သောအချက်အလက်များကို array များသို့ပေါင်းစပ်နိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခုမှတစ်ဆင့် CSV string ကိုမည်သို့ထိရောက်စွာလုပ်ဆောင်ရမည်ကိုပြသပါမည်။

1 ။ နိဒါန်း CSV format ကိုမှမိတ်ဆက်ပါ

CSV (ကော်မာ - သီးခြားခွဲထားသောတန်ဖိုးများ) သည် tabular data များကိုသိမ်းဆည်းရန်အသုံးပြုသောဘုံအချက်အလက်ပုံစံဖြစ်သည်။ ဒေတာတစ်ခုစီသည်စံချိန်တင်ကိုကိုယ်စားပြုသည်။ မှတ်တမ်းတစ်ခုစီ၏ကွဲပြားခြားနားသောနယ်ပယ်များကိုကော်မာ (သို့မဟုတ်အခြား separator) ဖြင့်ခွဲထားသည်။ ဥပမာအားဖြင့်:

 John,Doe,25,john.doe@m66.net
Jane,Smith,30,jane.smith@m66.net

2 ။ Exploit function ကိုအသုံးပြုပါ CSV အချက်အလက်များကိုခွဲထုတ်ရန်

Exploit function သည်သတ်မှတ်ထားသော delimiter နှင့်အညီ strar တစ်ခုထဲသို့ခွဲဝေနိုင်သည်။ CSV strings များကိုပြုပြင်သည့်အခါကျွန်ုပ်တို့သည်လိုင်းတစ်ခုစီ၏အချက်အလက်များကိုနယ်ပယ်တစ်ခုခွဲရန် delimiters များကဲ့သို့ကော်မာများအဖြစ်အသုံးပြုလေ့ရှိသည်။ ဒီမှာနမူနာကုဒ်တစ်ခုပါ။

 $csv_string = "John,Doe,25,john.doe@m66.net";
$fields = explode(",", $csv_string);

print_r($fields);

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

 Array
(
    [0] => John
    [1] => Doe
    [2] => 25
    [3] => john.doe@m66.net
)

အပေါ်ကပြထားတဲ့အတိုင်း Exploit function ကို CSV string ကိုအောင်မြင်စွာခွဲထားနိုင်ပြီးနယ်ပယ်တစ်ခုစီသည် array တွင် element တစ်ခုဖြစ်လာသည်။

3 ။ array_combine function ကိုအသုံးပြုပြီး Associative ခင်းကျင်းကိုဖန်တီးပါ

CSV အချက်အလက်များနှင့်အလုပ်လုပ်သောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်သက်ဆိုင်ရာတန်ဖိုးနှင့်တစ်ခုချင်းစီကိုနယ်ပယ်တစ်ခုစီ၏အမည်ကိုတွဲလိုကြသည်။ array_combeind function ကိုသာဤလိုအပ်ချက်ကိုဖြည့်ဆည်းပေးနိုင်သည်။ ၎င်းသည် array တစ်ခု၏ elements ၏ elements များကိုအခြားခင်းကျင်းမှုတစ်ခုအနေဖြင့်တွဲဖက်ခင်းကျင်းသော array တစ်ခုအဖြစ်အခြားခင်းကျင်းမှုတစ်ခုအဖြစ်ပေါင်းစပ်ထားသည်။

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

 $csv_string = "John,Doe,25,john.doe@m66.net";
$fields = explode(",", $csv_string);

$headers = ['FirstName', 'LastName', 'Age', 'Email'];
$associative_array = array_combine($headers, $fields);

print_r($associative_array);

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

 Array
(
    [FirstName] => John
    [LastName] => Doe
    [Age] => 25
    [Email] => john.doe@m66.net
)

ဤဥပမာတွင် array_combine သည် $ fields array ရှိသော့နှင့်တန်ဖိုးကိုတန်ဖိုးရှိသည့်တန်ဖိုးကိုထုတ်လုပ်သည့်တန်ဖိုးနှင့်တန်ဖိုးကိုတန်ဖိုးထားသည့် headers array ရှိတန်ဖိုးကိုအသုံးပြုသည်။

4 ။ Multi-Row CSV ဒေတာ

ပုံမှန်အားဖြင့် CSV ဖိုင်တွင်ဒေတာများစွာပါ 0 င်သည်။ ဒေတာအတန်းတစ်ခုစီကိုထုတ်လုပ်ရန်ကျွန်ုပ်တို့သည် exploit နှင့် array_combine ကို သုံး. နောက်ဆုံးတွင်ရလဒ်များကိုပိုမိုကြီးမားသောခင်းကျင်းမှုအဖြစ်ပေါင်းစပ်နိုင်သည်။

အောက်ဖော်ပြပါ CSV အချက်အလက်များရှိသည်ဆိုပါစို့။

 John,Doe,25,john.doe@m66.net
Jane,Smith,30,jane.smith@m66.net

ကျွန်ုပ်တို့သည်ဤအချက်အလက်များကိုအောက်ပါကုဒ်များမှတစ်ဆင့်တွဲဖက်ခင်းကျင်းသည့်နှစ်ခုရှုထောင့်ခင်းကျင်းမှုတစ်ခုအဖြစ်ဆောင်ရွက်နိုင်သည်။

 $csv_data = "John,Doe,25,john.doe@m66.net\nJane,Smith,30,jane.smith@m66.net";
$rows = explode("\n", $csv_data); // အတန်းအားဖြင့်ဒေတာခွဲ

$headers = ['FirstName', 'LastName', 'Age', 'Email'];
$final_result = [];

foreach ($rows as $row) {
    $fields = explode(",", $row); // လိုင်းတစ်ခုစီကိုကော်မာဖြင့်ခွဲပါ
    $final_result[] = array_combine($headers, $fields); // Associative Arrays ထုတ်လုပ်ခြင်း
}

print_r($final_result);

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

 Array
(
    [0] => Array
        (
            [FirstName] => John
            [LastName] => Doe
            [Age] => 25
            [Email] => john.doe@m66.net
        )

    [1] => Array
        (
            [FirstName] => Jane
            [LastName] => Smith
            [Age] => 30
            [Email] => jane.smith@m66.net
        )
)

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် Multi-Row CSV အချက်အလက်များကိုဆန့်ကျင်သူများစွာပါ 0 င်သောရှုထောင့်နှစ်လုံးရှိခင်းကျင်းခြင်းဖြင့်အောင်မြင်စွာကူးယူခဲ့သည်။

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

PHP ၏ exploit နှင့် array_combine လုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် CSV string data ကိုထိရောက်စွာလုပ်ဆောင်နိုင်သည်။ String ကိုခင်း ကျင်း မှုတစ်ခုအဖြစ်ခွဲဝေရန် တာ 0 န် ရှိသည်။ ၎င်းသည်တစ်ခုတည်းသောလိုင်းဒေတာသို့မဟုတ်ပုံစံအမျိုးမျိုးဒေတာများကိုလုပ်ဆောင်နေသည်ဖြစ်စေဤနှစ်ခုပေါင်းစပ်မှုသည်ကုဒ်၏ထိရောက်မှုနှင့်ဖတ်နိုင်မှုကိုများစွာတိုးတက်စေနိုင်သည်။

CSV အချက်အလက်များကို exploit နှင့် array_combine လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါကသို့မဟုတ်နောက်ထပ်ရှင်းပြချက်လိုအပ်ပါကမက်ဆေ့ခ်ျကိုချန်ထားပါ။