CSV ဖိုင်များကို PHP ကိုအသုံးပြုသောအခါ FNGCSV () သည် CSV ဖိုင်များကိုမျဉ်းကြောင်းဖြင့်ဖတ်နိုင်ပြီးအချက်အလက်များကိုစာတိုတစ်ခုစီကိုဖတ်နိုင်သည်။ သို့သော် FNGCTSV () သည် အချက်အလက်များကိုထပ်ခါတလဲလဲဖတ်နိုင်ပြီးကြီးမားသောဖိုင်များကိုကိုင်တွယ်သည့်အခါဖိုင်များထောက်ပြသည့်ဖိုင်ညွှန်ပြခြင်းဖြင့်မတော်တဆစီမံခန့်ခွဲနိုင်ပါကအချို့သောလိုင်းများကိုကျော်သွားပါ။ ဤပြ problems နာများကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်ဖိုင် pointer စီမံခန့်ခွဲမှုစွမ်းရည်ကိုကျွမ်းကျင်ရန်လိုအပ်သည်။ ဤဆောင်းပါးသည်အချက်အလက်များကိုထပ်ခါတလဲလဲဖတ်ရှုခြင်းကိုမည်သို့ထိထိရောက်ရောက်ရှောင်ရှားနိုင်ပြီးအတန်းတိုင်းဖတ်ရန်မှန်ကန်ကြောင်းသေချာစေရန်။
PHP တွင်လက်ရှိစာဖတ်ခြင်းသို့မဟုတ်ရေးသားထားသောဖိုင်၏တည်နေရာကိုမှတ်သားရန်ဖိုင်ထောက်လှမ်းရေးကိုအသုံးပြုသည်။ ဖိုင်တစ်ခုကိုဖွင့်ပြီး FetGetCSV () function ကိုသုံးသောအခါဒေတာများကိုဖတ်ရန် functcsv () function ကိုအသုံးပြုသောအခါဖိုင်ညွှန်းကိန်းတစ်ခုချင်းစီကိုဖတ်ရန်ခွဲစိတ်မှုတစ်ခုနှင့်တစ်ခုရွေ့လျားလိမ့်မည်။ ဖိုင်ကိုဖတ်သည့်အခါ Pointer သည်ဖိုင်၏အဆုံးတွင်ရှိနေမည်။
Fgetcsv () ကိုခေါ်သည့်အခါတိုင်း၎င်းသည်လက်ရှိအနေအထားမှ CSV ဒေတာများကိုစတင်ဖတ်ရှုပြီး pointer ကိုတတန်းကိုလှိမ့်စေသည်။ အကယ်. ကျွန်ုပ်တို့သည်ဖိုင်များကိုမတော်တဆစီမံခန့်ခွဲမှုများကိုမတော်တဆအသုံးချပါကအောက်ပါအခြေအနေများဖြစ်ပေါ်နိုင်သည်။
Read Pud : ပရိုဂရမ်သည်လုပ်ငန်းစဉ်အချက်အလက်များကိုပြန်လည်ဖတ်ရှုနိုင်သည်။
Data skip အချက်အလက် : ဖိုင်ညွှန်းကိန်းသည်အလွန်အကျွံခုန်ချလိုက်သည်။ အတန်းအချို့ကိုလွဲချော်စေသည်။
သင်ဖတ်သည့်အခါတိုင်းဖိုင်ညွှန်းကိန်းကိုမှန်ကန်စွာနေရာချထားရန်သေချာစေရန်, သင်သည်အသေးစိတ်ထိန်းချုပ်မှုပြုလုပ်ရန် FTell () နှင့် FSEEK) ကိုသုံးနိုင်သည်။
FTell () - လက်ရှိဖိုင်ညွှန်ပြနေရာကိုရယူပါ။
FESEEK () - ခွင့်ပြုထားသော offset ပေါ် မူတည်. ဖိုင်ကိုညွှန်ပြသည့်အနေအထားသို့ရွှေ့ပါ။
ဤရွေ့ကားလုပ်ဆောင်ချက်နှစ်ခုသည်ကျွန်ုပ်တို့အားသတ်သတ်မှတ်မှတ်အခြေအနေများတွင်ဖိုင်ထောက်လှမ်းရေးကိုပြောင်းရွှေ့ရန်နှင့်ထပ်တူသို့မဟုတ်ပျောက်ဆုံးနေသောအချက်အလက်များကိုဖတ်ရှုခြင်းကိုရှောင်ရှားနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</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">if</span></span><span> (</span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-variable">$lineNumber</span></span><span> = </span><span><span class="hljs-number">0</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-literal">FALSE</span></span><span>) {
</span><span><span class="hljs-variable">$lineNumber</span></span><span>++;
</span><span><span class="hljs-comment">// လက်ရှိ pointer အနေအထားကိုရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftell</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span><span><span class="hljs-comment">// လက်ရှိလိုင်း၏ contents ပုံနှိပ်ပါ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Line <span class="hljs-subst">$lineNumber</span></span></span><span>: " . </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-comment">// အချို့ကိစ္စများတွင်(ဥပမာအားဖြင့်အချို့သောလိုင်းများကိုကျော်သွားပါ)အသုံးပြုနိုင်fseekသတ်မှတ်ထားသောတည်နေရာမှအနေအထား</span></span><span>
</span><span><span class="hljs-comment">// fseek($file, $position + 100); // နမူနာ:ခုန်ကျော်သည်100နေပြည်တော်</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><span class="hljs-meta">?></span></span><span>
</span></span>
CSV ဖိုင်များကိုကွင်းဆက်တစ်ခုတွင်ဖတ်သည့်အခါအောက်ပါအခြေအနေများနှင့်ကျွန်ုပ်တို့များသောအားဖြင့်တွေ့ရသည်။ ထပ်ခါတလဲလဲစာဖတ်ခြင်းကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သက်ဆိုင်ရာအစီအမံများကိုယူနိုင်သည်။
ဖိုင်ခေါင်းစဉ်ကိုရယူခြင်းသို့မဟုတ်အချို့သောအခြေအနေများကိုစစ်ဆေးခြင်းကဲ့သို့သောအချက်အလက်များကိုမဖတ်မီဖိုင်တွင်ကြိုတင်မသုံးရန်လိုအပ်ပါကဖိုင်ညွှန်ပြချက်ကိုပထမ ဦး ဆုံးဖတ်ရှုခြင်းအားဖြင့်ဖိုင်ညွှန်းကိုရှေ့သို့ရွေ့နိုင်သည်။
CSV ဖိုင်များကိုပြုပြင်သည့်အခါဖိုင်ညွှန်ပြသည့်နေရာပေါ်တွင် အခြေခံ. အချို့သောအချက်အလက်များကိုဖတ်ရှုခြင်းရှိမရှိစစ်ဆေးနိုင်သည်။ ဥပမာအားဖြင့် FTell () function ၏ return-function ကိုပြန်ပို့ခြင်းသို့မဟုတ်အချို့သောမမှန်ကန်သောဒေတာများကိုကျော်ဖြတ်ရန်လိုအပ်ခြင်းရှိ,
အကယ်. CSV ဖိုင်ရှိအကြောင်းအရာအချို့ကိုအကြိမ်ပေါင်းများစွာဖတ်နိုင်ပါက (ခေါင်းစဉ် data data or Rivs ကဲ့သို့သော) ကိုဖတ်ရှုနိုင်လျှင်, မလိုအပ်သောထပ်ခါတလဲလဲဖတ်ရှုခြင်းကိုရှောင်ရှားရန်ဒေတာများကိုယာယီသိမ်းဆည်းရန် cache ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</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">if</span></span><span> (</span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-variable">$cache</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-literal">FALSE</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-number">0</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__">in_array</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>, </span><span><span class="hljs-variable">$cache</span></span><span>)) {
</span><span><span class="hljs-comment">// အချက်အလက်များကိုထုတ်ယူခြင်း</span></span><span>
</span><span><span class="hljs-variable">$cache</span></span><span>[] = </span><span><span class="hljs-variable">$key</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>) . </span><span><span class="hljs-string">"\n"</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><span class="hljs-meta">?></span></span><span>
</span></span>
ဖိုင်ကိုဖတ်သည့်အခါဖိုင်ညွှန်ပြသည့်နေရာကိုအထူးဂရုပြုရန်လိုအပ်သည်။ အချို့ဖြစ်ရပ်များတွင် FNGCSV () သည် ဖိုင်အပြီးတွင်အချည်းနှီးသောလိုင်းများသို့မဟုတ်သတ်သတ်မှတ်မှတ်ဇာတ်ကောင်များကြောင့်ထွက်ပြေးတိမ်းရှောင်နေပြီး မမှန်ကန် တော့ပါ။ ဤအချိန်တွင်ဖိုင်၏အဆုံးသည် အ ဆုံးကိုပြန်အမှတ်အသားပြုရန် FITCTCSV () ကိုမှီခိုခြင်းရှိမရှိစစ်ဆေးရန် FEF () function ကိုသုံးနိုင်သည်။
FgetCSV () သည်အစွမ်းထက်သော function တစ်ခုဖြစ်သည်။ FTell () နှင့် FCEEK ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဖိုင်ညွှန်ပြခြင်း၏အနေအထားကိုအတိအကျထိန်းချုပ်နိုင်သည်။ ထို့အပြင် cache နှင့်ယုတ္တိဆိုင်ရာတရားစီရင်ခြင်းကိုဆင်ခြင်တုံတရားနှင့်ယုတ္တိဆိုင်ရာတရားစီရင်ခြင်းကိုပိုမိုကောင်းမွန်စေပြီးမလိုအပ်သောအရင်းအမြစ်သုံးစွဲမှုကိုလျှော့ချနိုင်သည်။ ဤဆောင်းပါး၏ကျွမ်းကျင်မှုများမှတဆင့် fgetcsv () အသုံးပြုခြင်းကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်ပြီးပိုမိုရှုပ်ထွေးသော CSV ဖိုင်များကိုကိုင်တွယ်နိုင်သည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။