ပထမ ဦး စွာ fefof ၏အခြေခံအသုံးပြုမှုကိုနားလည်ကြပါစို့ () ။ ဤလုပ်ဆောင်မှု၏ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">feof</span></span><span>(resource </span><span><span class="hljs-variable">$handle</span></span><span>);
</span></span>
၎င်းသည်ဖိုင်အမျိုးအစားကိုလက်ခံသည် ( fopen () function ကိုဖွင့်လေ့ရှိသောဖိုင်တွဲတစ်ခု) သည် parameter တစ်ခုအနေဖြင့်ဖိုင်ညွှန်ပြသည့်ဖိုင်အဆုံးသို့ရောက်သောအခါ ပြန်လည်ရောက်ရှိ လာသောအခါ, များသောအားဖြင့်ဖိုင်တစ်ခုကိုဖတ်သည့်အခါ, ကျွန်ုပ်တို့သည်ဖိုင်ကိုဖတ်ရှုခြင်းရှိမရှိဆုံးဖြတ်ရန် () နှင့် fgets () နှင့်တွဲဖက်လုပ်ဆောင်မှုများနှင့် တွဲဖက်. အသုံးပြုကြသည်။
Binary files နှင့်စာသားဖိုင်များအကြားအကြီးမားဆုံးကွာခြားချက်မှာသူတို့၏သိုလှောင်မှုပုံစံဖြစ်သည်။ binary file တစ်ခုချင်းစီသည် byte တစ်ခုစီ သည် ကွဲပြားသောဒေတာများကိုကိုယ်စားပြုနိုင်သည် ။ ထို့ကြောင့် Binary files များကိုဖတ်သည့်အခါမမှန်ကန်ကြောင်းဖတ်ရှုခြင်းနှင့်အပြုအမူရေးရန်အထူးဂရုပြုရန်လိုအပ်သည်။
စာသားဖိုင်များတွင် feof () သည် နောက်ဆုံးဇာတ်ကောင်ကိုဖတ်ရှုပြီးနောက် ပြန်လည်ထူထောင် ခြင်းများပြုလုပ်လေ့ရှိသည်။ Binary Files တွင်ဖိုင် တွင် သိသာထင်ရှားသည့် "အဆုံးဇာတ်ကောင်" သို့မဟုတ် "လိုင်းအဆုံးဇာတ်ကောင်",
Binary files များနှင့်အလုပ်လုပ်သောအခါ, အောက်ပါဘုံပြ problems နာများသည် feof () နှင့်တွေ့နိုင်သည်။
Binary Data ကိုဖတ်သည့်အခါ feof () ပြန်လာသော အခါဖိုင်သည်ဖိုင်ကိုအပြည့်အဝဖတ်ရှုခြင်းဟုမဆိုလိုပါ။ တစ်ခါတစ်ရံ feof () ပြန်လည်ရောက်ရှိ လျှင်ပင်လျှင်, ဖိုင်ကိုအပြည့်အဝမဖတ်နိုင်ကြောင်းတွေ့ရှိနိုင်သည်။ ဤအရာသည် fef () ဖိုင်၏အဆုံးရှိအခြေအနေများသည်ဖိုင် pointer အနေအထားကိုအခြေခံထားကြောင်းဆုံးဖြတ်သောကြောင့်ဖြစ်သည်။
စာဖတ်စဉ်အတွင်းတိကျသောဒေတာတည်ဆောက်ပုံ (ဥပမာ - သတ်မှတ်ထားသောစံချိန်ကဲ့သို့) တိကျသောဒေတာတည်ဆောက်ပုံ (ဥပမာ - အရှည်စံချိန်ကဲ့သို့) အကယ်. တိကျသောဒေတာတည်ဆောက်ပုံ (ဥပမာ - သတ်မှတ်ထားသောစံချိန်ကဲ့သို့) တွင်စာဖတ်စဉ်အတွင်းတိကျသောညွှန်ကြားချက်အနေအထားကိုတင်းကြပ်စွာထိန်းချုပ်ရမည်။ အကယ်. သင်က feof () ကိုသာအားကိုးအားထားရှိလျှင်ကွင်းဆက်စာဖတ်ခြင်းအတွင်းအဆုံးသတ်သည်ကိုဆုံးဖြတ်ရန်, အချို့သောကိစ္စရပ်များတွင်ဒေတာဖွဲ့စည်းပုံ၏ထက်ဝက်ကိုဖတ်ရန်ဖြစ်နိုင်သည်။
ဥပမာအားဖြင့်, fefed + မှတ်တမ်းများပါ 0 င ် သော binary file တစ်ခုဖတ်သည့်အခါ,
ဖိုင်များကိုဖတ်ရန် () ကို ဖတ်ရှုသောအခါအထူးသဖြင့်သတိထားပါ။ fread () ဖိုင်၏အဆုံးကိုဖတ်သည့်အခါဖတ်သည့် bytes အရေအတွက်ကိုပြန်လည်ဖတ်ရှုသည်။ အကယ် . feof () ကို loop ရပ်စဲရန်အတွက်အလံတစ်ခုအနေဖြင့်သာအသုံးပြုပါက, ဤအချိန်တွင်ဤအစီအစဉ်သည်ဖတ်ခြင်းစစ်ဆင်ရေးကိုအဆုံးသတ်စေနိုင်သည်။
ယင်းကိုရှောင်ရှားရန် fefof () အပေါ်မှီခိုခြင်းထက်ဒေတာကိုဖတ်ရှုသည့်အခါဒေတာကိုဖတ်ရှုသည့်အခါအမှန်တကယ်ဖတ်ရှုသည့်အရေအတွက်ကိုဆုံးဖြတ်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့်:
<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">'binary_file.dat'</span></span><span>, </span><span><span class="hljs-string">'rb'</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">feof</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) {
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fread</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-number">1024</span></span><span>); </span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုဖတ်ပါ1024ဒရယ်</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">$data</span></span><span>) < </span><span><span class="hljs-number">1024</span></span><span>) {
</span><span><span class="hljs-comment">// ဒေတာ၏နောက်ဆုံးအစိတ်အပိုင်းကို process</span></span><span>
</span><span><span class="hljs-keyword">break</span></span><span>;
}
</span><span><span class="hljs-comment">// အချက်အလက်များကိုထုတ်ယူခြင်းအချက်အလက်များကိုဖတ်ပါ</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>
ဤနည်းအားဖြင့်ဒေတာအပိုင်းအစတစ်ခုစီကိုဖတ်ရှုပြီးနောက်, ဖိုင်များကိုဖတ်ရှုခြင်းအားဖြင့်ဖတ်ရှုခြင်းအားဖြင့်ဖိုင်ကြီးများကိုမှားယွင်းစွာမရရှိနိုင်ကြောင်းသေချာစေသည်။
FEF () Binary files များကိုထုတ်ပေးသည့်အခါထိုပြ problem နာကိုဖြေရှင်းရန်အတွက်ဤတွင်အကြံပြုချက်အချို့ရှိပါသည်။
binary file တစ်ခုကိုဖတ်သည့်အခါဖိုင်ကိုဖတ်ပြီးသည်ကိုဆုံးဖြတ်ရန်သင်၏ Return Value အရှည်ကိုသုံးနိုင်သည် ။ အကယ်. Fread မှရရှိသောဒေတာအရှည် () သည်မျှော်လင့်ထားသည့် Bytes အရေအတွက်ထက်နည်းသည်ဆိုပါကဖိုင်၏အဆုံးကိုရောက်ရှိနေပြီဖြစ်သည်။ ဤနည်းအားဖြင့်သင်သည် fefof အပေါ်မှီခိုမှုကိုရှောင်ရှားနိုင်သည်။
ဖိုင်အကြောင်းအရာကိုအပြည့်အဝဖတ်ရန်သေချာစေရန်လိုအပ်ပါကလက်ရှိဖိုင်ညွှန်ပြနေရာကိုစစ်ဆေးရန် FTell () function ကိုပေါင်းစပ်နိုင်သည်။ အကယ်. Pointer သည်ဖိုင်၏အဆုံးသို့ရောက်သွားပါကဖိုင်ဖတ်သည်ပြီးပြည့်စုံကြောင်းအတည်ပြုနိုင်သည်။
<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">'binary_file.dat'</span></span><span>, </span><span><span class="hljs-string">'rb'</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">feof</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) {
</span><span><span class="hljs-variable">$pos</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ftell</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fread</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-number">1024</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">$data</span></span><span>) < </span><span><span class="hljs-number">1024</span></span><span>) {
</span><span><span class="hljs-keyword">break</span></span><span>;
}
</span><span><span class="hljs-comment">// အချက်အလက်များကိုထုတ်ယူခြင်း</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>
အကယ်. binary file တစ်ခု (fixed-+ မှတ်တမ်းများ) တိကျသောဖွဲ့စည်းပုံ (ဥပမာ - အလျားမှတ်တမ်းများကဲ့သို့) တွင်စာဖတ်ခြင်းလုပ်ငန်းစဉ်ကိုအဆုံးသတ်ရန်အတွက်ဖိုင်အမျိုးအစားပေါ် မူတည်. ဖိုင်အမျိုးအစား ကို အခြေခံ. ဖိုင်အမျိုးအစားကိုအခြေခံသည့် bytes အရေအတွက်ကိုသတ်မှတ်သင့်သည်။ ဖိုင် format ကိုကြိုတင်လေ့လာခြင်းအားဖြင့်စာဖတ်ခြင်းလုပ်ငန်းစဉ်ကိုပိုမိုတိကျစွာထိန်းချုပ်နိုင်ပြီးလွဲမှားစွာသို့မဟုတ်ပျက်ကွက်ခြင်းကိုရှောင်ရှားနိုင်သည်။
PHP တွင် binary files များကိုလုပ်ဆောင်သောအခါအထူးကြိုတင်ကာကွယ်မှုများရှိသည်။ Binary files များသည်သိသာထင်ရှားသည့်ခွဲခြမ်းစိတ်ဖြာမှုများမရှိခြင်းကြောင့် fefof () ဖိုင်ကိုဖတ်ရှုခြင်းရှိမရှိဆုံးဖြတ်ရန်ယုံကြည်စိတ်ချရသောအလေ့အကျင့်တစ်ခုမဟုတ်ပါ။ ဖိုင်ကိုအပြည့်အဝဖတ်ရှုရန်သေချာစေရန် ftell () ဖိုင် ၏ pointer အနေအထားကိုအသုံးပြုရန်သို့မဟုတ်ဖိုင်ဖွဲ့စည်းပုံအပေါ် မူတည်. ပိုမိုတိကျသောထိန်းချုပ်မှုကိုအသုံးပြုရန်သို့မဟုတ်ပိုမိုတိကျသောထိန်းချုပ်မှုကိုအသုံးပြုရန်အကြံပြုသည်။ ဤနည်းလမ်းများက fefof () မပြည့်စုံမှုကြောင့်အချက်အလက်ဆုံးရှုံးမှုကိုရှောင်ရှားရန်ကျွန်ုပ်တို့အားကူညီနိုင်သည်။