PHP တွင် CSV format ဖြင့်လုပ်ဆောင်ခြင်းအချက်အလက်များသည်အထူးသဖြင့်တန်ဖိုးများပါ 0 င်သောကြိုးများသို့မဟုတ်ကြိုးများကိုပြုလုပ်ရန်လိုအပ်သည့်အခါဘုံလုပ်ငန်းတစ်ခုဖြစ်သည်။ Exploit နှင့် array_combine သည် PHP တွင်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်များဖြစ်ပြီး၎င်းတို့သည် strings segment segression များကိုထိရောက်စွာ segment လုပ်ပြီးဆက်စပ်သောအချက်အလက်များကို array များသို့ပေါင်းစပ်နိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခုမှတစ်ဆင့် CSV string ကိုမည်သို့ထိရောက်စွာလုပ်ဆောင်ရမည်ကိုပြသပါမည်။
CSV (ကော်မာ - သီးခြားခွဲထားသောတန်ဖိုးများ) သည် tabular data များကိုသိမ်းဆည်းရန်အသုံးပြုသောဘုံအချက်အလက်ပုံစံဖြစ်သည်။ ဒေတာတစ်ခုစီသည်စံချိန်တင်ကိုကိုယ်စားပြုသည်။ မှတ်တမ်းတစ်ခုစီ၏ကွဲပြားခြားနားသောနယ်ပယ်များကိုကော်မာ (သို့မဟုတ်အခြား separator) ဖြင့်ခွဲထားသည်။ ဥပမာအားဖြင့်:
John,Doe,25,john.doe@m66.net
Jane,Smith,30,jane.smith@m66.net
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 တစ်ခုဖြစ်လာသည်။
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 ရှိတန်ဖိုးကိုအသုံးပြုသည်။
ပုံမှန်အားဖြင့် 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 င်သောရှုထောင့်နှစ်လုံးရှိခင်းကျင်းခြင်းဖြင့်အောင်မြင်စွာကူးယူခဲ့သည်။
PHP ၏ exploit နှင့် array_combine လုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် CSV string data ကိုထိရောက်စွာလုပ်ဆောင်နိုင်သည်။ String ကိုခင်း ကျင်း မှုတစ်ခုအဖြစ်ခွဲဝေရန် တာ 0 န် ရှိသည်။ ၎င်းသည်တစ်ခုတည်းသောလိုင်းဒေတာသို့မဟုတ်ပုံစံအမျိုးမျိုးဒေတာများကိုလုပ်ဆောင်နေသည်ဖြစ်စေဤနှစ်ခုပေါင်းစပ်မှုသည်ကုဒ်၏ထိရောက်မှုနှင့်ဖတ်နိုင်မှုကိုများစွာတိုးတက်စေနိုင်သည်။
CSV အချက်အလက်များကို exploit နှင့် array_combine လုပ်ဆောင်ချက်များကိုမည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားပိုမိုကောင်းမွန်သောနားလည်မှုကိုပိုမိုနားလည်ရန်မျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါကသို့မဟုတ်နောက်ထပ်ရှင်းပြချက်လိုအပ်ပါကမက်ဆေ့ခ်ျကိုချန်ထားပါ။