လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဒေတာလျှံကိုရှောင်ရှားရန် FgetCSV ရှိ FITCTSV တွင်အများဆုံးအရှည်ကိုမည်သို့သတ်မှတ်ရမည်နည်း။

ဒေတာလျှံကိုရှောင်ရှားရန် FgetCSV ရှိ FITCTSV တွင်အများဆုံးအရှည်ကိုမည်သို့သတ်မှတ်ရမည်နည်း။

gitbox 2025-06-20

ဒေတာလျှံကိုရှောင်ရှားရန် FgetCSV ရှိ FITCTSV တွင်အများဆုံးအရှည်ကိုမည်သို့သတ်မှတ်ရမည်နည်း။

CSV ဖိုင်များကိုပြုပြင်သည့်အခါ FNGCESV () သည် PHP တွင်အလွန်အသုံးများသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်လိုင်းတစ်ခုစီ၏လိုင်းပေါ်တွင်အချက်အလက်များကိုလေ့လာရန်အသုံးပြုသည်။ CSV ဖိုင်တွင်ဒေတာပမာဏသည်အလွန်ကြီးမားသည်ဆိုပါကဤအချက်အလက်များကိုပြုပြင်ခြင်းနှင့်အတူပြ problems နာအမျိုးမျိုးကိုသင်ကြုံတွေ့ရနိုင်သည်။ ဆိုလိုသည်မှာအချို့သောနယ်ပယ်များ၏အချက်အလက်များသည်မျှော်လင့်ထားသည့်အကွာအဝေးထက် ကျော်လွန်. အစီအစဉ်ကိုအချက်အလက်များကိုမှန်ကန်စွာမလုပ်နိုင်စေရန်မျှော်လင့်ထားသည့်အကွာအဝေးထက်ကျော်လွန်နေသည်။

ဤသို့လျှံကိုရှောင်ရှားရန်လယ်ကွင်းတစ်ခုစီအတွက်ဒေတာများသည်အများဆုံးအရှည်ကိုချိန်ညှိခြင်းဖြင့်သတ်မှတ်ထားသောအကန့်အသတ်ထက်မပိုပါ။ CSV ဖိုင်များ၏စာဖတ်ခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုထိန်းချုပ်ရန်အတွက် FNCTCSV () function ကိုအသုံးပြုသောအခါ FACTCSV () function ကိုအသုံးပြုသည့်အခါဤဆောင်းပါးသည်မည်သည့်နေရာတွင်အများဆုံးသတ်မှတ်မည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

functcsv () function ကိုမိတ်ဆက်

ပထမ ဦး စွာ FetCSV () function ကိုအတိုချုပ်နားလည်ကြပါစို့။

 <span><span><span class="hljs-title function_ invoke__">fgetcsv</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$delimiter</span></span><span> = </span><span><span class="hljs-string">","</span></span><span>, </span><span><span class="hljs-variable">$enclosure</span></span><span> = </span><span><span class="hljs-string">'"'</span></span><span>, </span><span><span class="hljs-variable">$escape</span></span><span> = </span><span><span class="hljs-string">"\\"</span></span><span>);
</span></span>
  • $ file : ဖတ်ရန်လိုအပ်သည့်ဖိုင်အရင်းအမြစ်။

  • $ အရှည် - ဒေတာအတန်း၏အမြင့်ဆုံးအရှည်ကိုသတ်မှတ်သည်။ အကယ်. အချက်အလက်များသည်ဤအရှည်ထက်ကျော်လွန်ပါက FgetCSV () သည် အလိုအလျောက်ဖြတ်သန်းလိမ့်မည်။ ပုံမှန်တန်ဖိုးသည် 0 င်ဖြစ်ပြီးအရှည်တွင်ကန့်သတ်ချက်မရှိကြောင်းဖော်ပြသည်။

  • $ delimiter : field delimiter, ကော်မာ ( , ) မှ defaults defaults နှင့်များသောအားဖြင့် tabs ( \ t ) ကဲ့သို့သောအခြား delimiters များဖြစ်နိုင်သည်။

  • $ unders : default charge ( " ) ကို default characters ("), ပုံမှန်အားဖြင့်နယ်ပယ်၏ဝင်းဇာတ်ကြောင်းအစမှာ, လယ်ပြင်၌အထူးအက္ခရာများကိုထုတ်လုပ်ရန်အသုံးပြုသည်။

  • $ Ela : Escape Candlegy, Defaults (\) မှ defaults ( \ ) မှ Defaults (\)) သည်လယ်ပြင်၌အထူးအက္ခရာများမှလွတ်မြောက်ရန်အသုံးပြုခဲ့သည်။

Field overflow ကိုရှောင်ပါ။ အများဆုံးလယ်ကွက်အရှည်ကိုသတ်မှတ်ပါ

CSV ဖိုင်ကိုဖတ်သည့်အခါအချို့သောအကွက်များသည်အမြင့်ဆုံးအရှည်အမြင့်ဆုံးအရှည်ထက်ကျော်လွန်ပါက FetCSV () သည် ပုံမှန်အားဖြင့်အပိုရှည်လျားသောအစိတ်အပိုင်းကိုဖတ်ရှုပြီးပြုလုပ်လိမ့်မည်။ ဤအရာကိုရှောင်ရှားရန် $ အရှည် parameter သည်သတ်မှတ်ခြင်းအားဖြင့်ဒေတာအတန်း၏အမြင့်ဆုံးအရှည်ကိုကန့်သတ်နိုင်သည်။

1 ။ အခြေခံအမြင့်ဆုံးအရှည်ကန့်သတ်ချက်

$ အရှည် parameter သည်သတ်မှတ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အချက်အလက်များကိုဖတ်သည့်အတန်းတစ်ခုစီ၏အများဆုံးအရေအတွက်ကိုထိန်းချုပ်နိုင်သည်။ ၎င်းသည်လယ်ကွင်းတစ်ခုစီသည်ကြိုတင်သတ်မှတ်ထားသောအမြင့်ဆုံးအရှည်ထက်မပိုသောကြောင့်သေချာသည်။ ဥပမာအားဖြင့်, အကယ်. သင်သည်ဒေတာတစ်ခုစီအတွက်အက်ခရာ 1000 အထိဖတ်လိုပါက၎င်းကိုသင်ဤကဲ့သို့သတ်မှတ်နိုင်သည်။

 <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'data.csv'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgetcsv</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">1000</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုအတန်းများအတွက်လုပ်ငန်းစဉ်အချက်အလက်</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span></span>

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

2 ။ Field အရှည်ကန့်သတ်ထားပါ

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

 <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'data.csv'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-variable">$max_lengths</span></span><span> = [</span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>]; </span><span><span class="hljs-comment">// ငါတို့ရှိသည်ဟုယူဆ3စာရင်း,အများဆုံးအရှည်ကန့်သတ်သည်50、100、200</span></span><span>

</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgetcsv</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$data</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$key</span></span><span> =&gt; </span><span><span class="hljs-variable">$value</span></span><span>) {
        </span><span><span class="hljs-comment">// အပိုရှည်လျားသောလယ်ကွင်းကိုဖြတ်</span></span><span>
        </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>) &gt; </span><span><span class="hljs-variable">$max_lengths</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>]) {
            </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] = </span><span><span class="hljs-title function_ invoke__">substr</span></span><span>(</span><span><span class="hljs-variable">$value</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$max_lengths</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>]);
        }
    }
    </span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုအတန်းများအတွက်လုပ်ငန်းစဉ်အချက်အလက်</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span></span>

ဤဥပမာတွင်လယ်ကွင်း၏အရှည်သည် 50, 100 နှင့်အက်ခရာ 200 အထိအကန့်အသတ်ဖြင့်သာကန့်သတ်ထားသည်။ အကယ်. လယ်ကွက်သည်ဤကန့်သတ်ချက်များထက်ကျော်လွန်ပါက Substrstr () function သည်အကြောင်းအရာကိုအများဆုံးခွင့်ပြုထားသောအရှည်သို့ဖြတ်သန်းသည်။

အထူးကိစ္စများကို CSV ဖိုင်များဖြင့်ကိုင်တွယ်ပါ

အမှန်တကယ်အသုံးပြုမှုတွင် CSV ဖိုင်ပုံစံသည်ကျေနပ်ဖွယ်ကောင်းမည်မဟုတ်ပါ, အချို့သောအချက်အလက်များသည်လိုင်းချိုးဖောက်မှုများ, tabs များစသည်တို့ကဲ့သို့သောအထူးအက္ခရာများသို့မဟုတ်အချို့သောနယ်ပယ်များတွင်ကော်မာနှင့်အခြားခွဲထွက်သူများပါ 0 င်နိုင်သည်။ ဤဖြစ်ရပ်များတွင် fgetcsv () parameters တွေကို () parameters တွေကိုနောက်ထပ်အချက်အလက်များကိုမှန်ကန်စွာဖတ်နိုင်အောင်နှင့်လျှံမပြည့်ဝစေရန်သေချာစေရန်နောက်ထပ် configure လုပ်နိုင်သည်။

1 ။ လိုင်းအားလပ်ချိန်

FgetCSV () သည် အသစ်သောအသစ်များကိုအလိုအလျောက် skiplines များကိုအလိုအလျောက် skiplines များကိုအလိုအလျောက် skip လုပ်လိမ့်မည်။ အကယ် . သင်သည်ကွက်လပ် တွင် အသစ်များပါ 0 င သည့်အခြေအနေကိုသင်ကြုံတွေ့ရပါက,

2 ။ delimiters ပါ 0 င်သည့်လုပ်ငန်းစဉ်များ

အကယ်. ကွင်းလယ်ကစားသမား (ကော်မာကဲ့သို့သော) delimiter ပါ 0 င်ပါက, ၎င်းသည်သင့်လျော်သောဝင်းဒိုး (ဥပမာ storeps ကဲ့သို့သော cSV format တွင်စံလေ့ကျင့်ခန်းဖြစ်သည်။

 <span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'data.csv'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgetcsv</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-string">','</span></span><span>, </span><span><span class="hljs-string">'"'</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုအတန်းများအတွက်လုပ်ငန်းစဉ်အချက်အလက်</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span></span>

အကျဉ်းချုပ်

FgetCSV () function တွင် Field ၏အမြင့်ဆုံးအရှည်ကိုသတ်မှတ်ခြင်းဖြင့်ဒေတာလျှံ၏ပြ problem နာကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ လိုင်းတစ်ခုစီ၏အများဆုံးအရှည်ကိုချိန်ညှိခြင်းသို့မဟုတ်လက်ဖြင့်ဖြတ်ခြင်း,

FgetCSV ()$ အရှည် parameter ၏ဆင်ခြင်တုံတရား၏ဆင်ခြင်တုံတရား၏အသုံးပြုမှုကိုနှင့်လယ်ကွင်းအရှည်စစ်ဆေးမှုများသည်ကွင်းပြည့်လျှံသောပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးအစီအစဉ်၏ကြံ့ခိုင်မှုနှင့်ယုံကြည်စိတ်ချရမှုကိုတိုးတက်စေနိုင်သည်။