လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> CSV ဖိုင်များရှိဒေတာများရှိဒေတာများကိုဖတ်ရန် FENCNSV နှင့် FSEEK လုပ်ဆောင်ချက်များသည်မည်သို့အတူတကွလုပ်ဆောင်ကြသနည်း။

CSV ဖိုင်များရှိဒေတာများရှိဒေတာများကိုဖတ်ရန် FENCNSV နှင့် FSEEK လုပ်ဆောင်ချက်များသည်မည်သို့အတူတကွလုပ်ဆောင်ကြသနည်း။

gitbox 2025-09-28

CSV ဖိုင်များရှိသတ်သတ်မှတ်မှတ်နေရာများရှိဒေတာများကိုဖတ်ရန် FENCTSV နှင့် FSEEK လုပ်ဆောင်ချက်များသည်မည်သို့အတူတကွလုပ်ဆောင်ကြသနည်း။ ]

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

FgetCSV function ကိုမိတ်ဆက်ပေးခြင်း

FgetCSV () သည် PHP တွင် built-in function များထဲမှတစ်ခုဖြစ်သည်။ များသောအားဖြင့် CSV format ဖြင့်ဖတ်ရန်အသုံးပြုလေ့ရှိသည်။ ၎င်းသည်ဖိုင်ညွှန်ကြားချက်၏လက်ရှိအနေအထားမှအချက်အလက်များ၏လိုင်းကိုဖတ်ပြီး၎င်းကိုခင်းကျင်းရန်ခင်းကျင်းစေသည်။ Array Elevent တစ်ခုစီသည် CSV ဖိုင်ရှိကော်လံတစ်ခုနှင့်ကိုက်ညီသည်။ FgetCSV () ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"file.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">$handle</span></span><span>, </span><span><span class="hljs-number">1000</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">$handle</span></span><span>);
</span></span>

FgetCSV () သည် parameters သုံးခုကိုလက်ခံနိုင်သည်။

  • လက်ကိုင် : ပွင့်လင်းသောဖိုင်အရင်းအမြစ်။

  • အရှည် : ဖတ်ရန် Bytes အများဆုံးအရေအတွက်။

  • delimiter : delimiter, comma မှ defaults ။

FSEEK လုပ်ဆောင်မှုမိတ်ဆက်

FCREK () function ကိုဖိုင်ညွှန်ပြသည့်အနေအထားကိုထိန်းညှိရန်အသုံးပြုသည်။ fseek () ၏အခြေခံအသုံးပြုမှုသည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-title function_ invoke__">fseek</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>, SEEK_SET);
</span></span>
  • $ လက်ကိုင် - ဖိုင်လက်ကိုင်။

  • $ offset : ရွှေ့ပြောင်းရန် bytes အရေအတွက်ကိုညွှန်ပြ, offset ။

  • Seek_set : offset ကိုဖိုင်၏အစမှတွက်ချက်သည်ကိုဖော်ပြသည်။ အခြားအသုံးများသောကိန်းရှင်များမှာ Seek_cur (လက်ရှိအနေအထားနှင့်နှိုင်းယှဉ်ပါ) နှင့် Seek_end (ဖိုင်၏အဆုံးအထိ) နှင့် Seek_cur နှင့် Seek_cur တို့ ပါဝင်သည်။

Conjunction တွင် FgetCSV နှင့် FSEEK ကိုသုံးပါ

FCEEK () နှင့် fgetcsv () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် CSV ဖိုင်ရှိသီးခြားနေရာမှဒေတာများကိုစတင်ဖတ်ရှုနိုင်သည်။ ကျွန်ုပ်တို့သည် CSV ဖိုင်တွင်ပထမ 10 လိုင်းကိုကျော်သွားလိုပြီးလိုင်း 11 မှအချက်အလက်များကိုစတင်ဖတ်ရှုလိုသည်ဆိုပါစို့။ ဤတွင်တိကျသောအကောင်အထည်ဖော်မှုဖြစ်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">'file.csv'</span></span><span>;
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-variable">$filename</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">$handle</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-comment">// အသုံးပြုfseekကျော် skip10အိုကေ</span></span><span>
    </span><span><span class="hljs-variable">$linesToSkip</span></span><span> = </span><span><span class="hljs-number">10</span></span><span>;
    </span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-variable">$linesToSkip</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
        </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>); </span><span><span class="hljs-comment">// 逐အိုကေ读取并跳过</span></span><span>
    }

    </span><span><span class="hljs-comment">// မှ11အိုကေ开始读取数据</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">$handle</span></span><span>, </span><span><span class="hljs-number">1000</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">$handle</span></span><span>);
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်ကိုဖွင့ ်. မရပါ!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

ဒီဥပမာမှာ FSECTCSV (ဒါမှမဟုတ် fgets () ) ကိုပထမ ဦး ဆုံးသုံးပြီး fcovercsv () ဖိုင်ကိုဖိုင်ညွှန်ပြတဲ့နေရာကနေဖတ်ရန်နှင့်လုပ်ဆောင်ရန် FGONCSV () ကို သုံးပါ။

လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်

  1. ကြီးမားသောဖိုင်များကိုကိုင်တွယ်ခြင်း - ကြီးမားသော CSV ဖိုင်များအတွက် FSEK ကို အသုံးပြု. FESEK () သည် မလိုအပ်သောအစိတ်အပိုင်းများကိုကျော်ပြီးလိုအပ်သောအချက်အလက်များကိုသာဖတ်ရန်ကူညီနိုင်သည်။ ဥပမာ, ခေါင်းစဉ်လိုင်း, အလွတ်လိုင်းသို့မဟုတ်ဖိုင်တွင်လုပ်ဆောင်သောအချက်အလက်အချို့ကိုကျော်သွားပါ။

  2. CSV အချက်အလက်များကိုကျပန်းလက်လှမ်းမီမှု - တခါတရံတွင်ကျွန်ုပ်တို့သည်ဒေတာများကို CSV ဖိုင်ရှိသီးခြားနေရာတစ်ခုမှဒေတာများကိုစတင်ဖတ်ရှုရန်သို့မဟုတ်သတ်မှတ်ထားသောအတန်းအချို့ကိုဖတ်ရန်လိုအပ်သည်။ ဤလိုအပ်ချက်ကို ကျိုးကြောင်းဆီလျော်သော () offset ကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းဖြင့်အလွယ်တကူရရှိနိုင်သည်။

  3. စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက် - ဖိုင်တစ်ခုလုံးကိုခြစ်ရာမှဖတ်ရန်မလိုအပ်ပါ

မှတ်သားရန်အရာ

  1. File Pointer Producter : FCREEK () ကိုခေါ်သည့်အခါဖိုင်ညွှန်ပြသည့်နေရာသည်ပြောင်းလဲသွားလိမ့်မည်။ ဒါကြောင့် FSEEK ကိုသုံးတဲ့အခါ () ကို အသုံးပြုတဲ့အခါမှာသင်စာဖတ်ချင်တဲ့နေရာမှန်ကိုသေချာအောင်လုပ်ပါ။

  2. FSEEK ၏ offset : FESEK () ၏ offset သည် bytes တွင်ရှိသည်။ ထို့ကြောင့် CSV ဖိုင်များသည်ဖိုင်များ၏အရှည်သည်ကိုက်ညီမှုမရှိပါကအမှားတစ်ခုဖြစ်ပေါ်စေနိုင်သည်။ ဤအရာကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည် fgets () ကို skip လုပ်ရန် () ကိုကျော်သွားစေရန်သို့မဟုတ်ဖိုင်အတွင်းရှိလိုင်းတစ်ခုစီသည်အတော်လေးတူညီသည်သေချာအောင်လုပ်လေ့ရှိသည်။

  3. ဖိုင်ဖွင့်ခြင်း Mode : ဖိုင်ကို Read Mode ( R ) တွင်ဖွင့်ရန်သေချာပါစေ

အကျဉ်းချုပ်

FgetCsv () နှင့် fseek) ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် CSV ဖိုင်များတွင်အသေးစိတ်အချက်အလက်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်ရှိနိုင်သည်။ FECEEK () FCLCESV () သည် CSV ဖိုင်တစ်ခုစီကို array တစ်ခုစီခွဲထားရန် FCLICSV () သည် CSV ဖိုင်တစ်ခုစီကိုခွဲခြမ်းစိတ်ဖြာခြင်းကိုအတိအကျထိန်းချုပ်နိုင်စွမ်းကိုထိန်းချုပ်နိုင်စွမ်းကိုပေးသည်။ နှစ် ဦး ၏ပေါင်းစပ်မှုသည်ကြီးမားသောဖိုင်များပြုပြင်ခြင်းသို့မဟုတ်ကျပန်းလက်လှမ်းမီမှုပြုလုပ်ရာတွင်ကျွန်ုပ်တို့၏စွမ်းဆောင်ရည်ကိုထိထိရောက်ရောက်တိုးတက်စေနိုင်သည်။