PHP မှ FPLCSV function ကို CSV ဖိုင်တစ်ခုသို့ရေးရန်အသုံးပြုသည်။ ၎င်းသည် CSV ဖိုင်၏မျိုးဆက်နှင့်အရေးအသားကိုလုပ်ဆောင်ရန်အတွက်ဘုံလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ FPBCSV ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
fputcsv($file, $fields, $delimiter = ',', $enclosure = '"', $escape_char = '\\');
Parameter $ file- parameter $ file သည် file လက်ကိုင်ဖြစ်သည်, $ delimiter သည် delimiter ဖြစ်သည်, ပုံမှန်သည် default သည် comma နှင့် communing ဖြစ်သည်။
Windows နှင့် Linux ကဲ့သို့သော operating system များစွာတွင် CSV ဖိုင်များကိုဖွင့်သောအခါ, ၎င်းသည်မတူညီသော operating systems နှင့် applications များအသုံးပြုသောကိုက်ညီသော default default character encodings ကြောင့်ဖြစ်သည်။ ဥပမာအားဖြင့် Windows သည် GBK သို့မဟုတ် Windows-1252 encoding ကိုပုံမှန်အားဖြင့်အသုံးပြုသည်။
FITNSV ကို အသုံးပြု. ဒေတာကိုအသုံးပြုပြီးဒေတာကိုမရေးမှီဒေတာများကိုထည့်သွင်းရန် MB_ConVert_encoding function ကိုသုံးနိုင်သည်။ ၎င်းကို UTF-8 encoding ကိုအသုံးပြုရန်အကြံပြုသည်။
// ဒေတာတရုတ်ဖြစ်ပါတယ်ယူဆ
$data = ['နံမယ်', 'အသက်အရွယ်', 'မြို့'];
$data = array_map(function($value) {
return mb_convert_encoding($value, 'UTF-8', 'auto'); // အလိုအလျောက်ခွဲခြားနှင့်ကူးပြောင်း UTF-8
}, $data);
$file = fopen('output.csv', 'w');
fputcsv($file, $data);
fclose($file);
ဤနည်းလမ်းသည် CSV ဖိုင်ရှိကော်လံတစ်ခုစီ၏ csconf တစ်ခုစီသည် UTF-8 တွင် encoded လုပ်ထားကြောင်း,
UTF-8 encoded files များသည်တစ်ခါတစ်ရံတွင် Excel ကဲ့သို့သောအချို့သောအစီအစဉ်များမှ Ansi encoded encoded encoded အဖြစ်မှားယွင်းစွာအသိအမှတ်ပြုကြသည်။ ဤပြ problem နာကိုဖြေရှင်းရန် File ၏အစတွင် UTF-8 (byte အမှာစာ) ၏ BOM ကိုထည့်နိုင်သည်။ ဤသည်ဖိုင်ကို Excel တွင်မှန်ကန်စွာဖော်ပြရန်သေချာစေသည်။
$file = fopen('output.csv', 'w');
// ထည့်သည် BOM ဉီးခေါင်း
fwrite($file, "\xEF\xBB\xBF");
$data = ['နံမယ်', 'အသက်အရွယ်', 'မြို့'];
fputcsv($file, $data);
fclose($file);
အချို့သောကိစ္စရပ်များတွင် Excel Opens ဖွင့်သောအခါကျွန်ုပ်တို့သည် Encoding method ကိုတိုက်ရိုက်သတ်မှတ်နိုင်သည်။ ဤနည်းလမ်းသည်ဖြစ်နိုင်ခြေရှိသည့်အခြေအနေများအားလုံးနှင့်မသက်မသာဖြစ်သော်လည်း, ၎င်းကို CSV ဖိုင်၏ URL ရှိ encoding format ကိုသတ်မှတ်ခြင်းဖြင့်ပြုလုပ်နိုင်သည်။
$fileUrl = 'http://m66.net/downloads/csv/output.csv';
ဟုတ်ပါတယ်, ဒီနည်းလမ်းဟာဖိုင်ကို URL ပုံစံကိုတိုက်ရိုက်ဒေါင်းလုပ်လုပ်တဲ့အခါအတွက်သင့်တော်တဲ့အချိန်မှာ download လုပ်ငန်းစဉ်အတွင်း encoding method ကိုသတ်မှတ်ပါတယ်။
တစ်ခါတစ်ရံတွင် CSV ဖိုင်ကိုသတ်မှတ်ထားသော encoding format (ဥပမာ GBK) အဖြစ်တင်ပို့ရန်လိုအပ်သည်။ အတန်းတစ်ခုစီ၏အချက်အလက်များကို MB_ConVert_encoding မှတဆင့် targeting format ဖြင့်ပြောင်းလဲနိုင်သည်။
$data = ['နံမယ်', 'အသက်အရွယ်', 'မြို့'];
$data = array_map(function($value) {
return mb_convert_encoding($value, 'GBK', 'UTF-8'); // သေတမ်းစာ UTF-8 လှည့် GBK
}, $data);
$file = fopen('output.csv', 'w');
fputcsv($file, $data);
fclose($file);
ဤနည်းလမ်းသည် Windows Systems တွင်အသုံးပြုရန်သင့်တော်သည်။ GBK encoding ကိုပုံမှန်အားဖြင့် Excel ဖြင့်ဖြစ်ပေါ်လာသော concled code ကိုကာကွယ်ပေးသည်။
Encoding ပြ Proble နာများကြုံတွေ့ရခြင်းသည် PHP ၏ FPP Capcsv function ကိုအသုံးပြုသောအခါဘုံစိန်ခေါ်မှုတစ်ခုဖြစ်သည်။ ဖိုင် encoding format ကိုထိန်းချုပ်ခြင်းအားဖြင့်ဖိုင်ကိုမတူညီသောစနစ်များနှင့် application များ၌မှန်ကန်စွာဖော်ပြခြင်းနှင့် barbled code ကိုရှောင်ရှားခြင်းအားဖြင့်အောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။
MB_ConVert_encoding ကို unified encoding format နဲ့ပြောင်းရန် MB_ConVert_encoding ကိုသုံးပါ။
UTF-8 BOM header header ကို Excel ကိုမှန်ကန်စွာမှန်ကန်စွာသေချာစေရန် UTF-8 encoding ကိုမှန်ကန်စွာအသိအမှတ်ပြုသည်။
သင်၏လိုအပ်ချက်များအရ GBK ကဲ့သို့သောမတူညီသောဇာတ်ကောင် encodings များကိုရွေးချယ်ပါ,
တစ်စိတ်တစ်ပိုင်းလိုက်ဖက်တဲ့ပြ issues နာများကိုရှောင်ရှားရန် URL တွင် url ကို encoding နည်းလမ်းများ (ဥပမာ, M66.net ) ကိုတိုက်ရိုက်ဖော်ပြပါ။
ဤနည်းစနစ်များမှတဆင့် CSV ဖိုင်များကိုတင်ပို့သောအခါ CSV ဖိုင်များကိုတင်ပို့သည့်အခါ condbled code ပြ problems နာများကိုသင်ရှောင်ရှားနိုင်သည်။