PHP ပရိုဂရမ်တွင်အထူးသဖြင့်မှတ်တမ်းဖိုင်များ (သို့) အခြားမှတ်တမ်းဖိုင်များကိုပြုပြင်သည့်အခါဖိုင်ကြီးကြီး၏နောက်ဆုံးလိုင်းအနည်းငယ်ကိုဖတ်ရန်မကြာခဏလိုအပ်သည်။ ပရိုဂရမ်၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်နှင့်ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့တိုက်ရိုက်တင်ခြင်းကိုရှောင်ရှားရန်အတွက်ကျွန်ုပ်တို့သည်ပိုမိုထိရောက်သောစာဖတ်ခြင်းနည်းလမ်းကိုချမှတ်ရန်လိုအပ်သည်။
ရိုးရာနည်းလမ်းမှာဖိုင်တစ်ခုလုံးကိုဖိုင်တစ်ခုလုံးကိုမှတ်တမ်းတင်ရန်ဖြစ်သည်, ဖိုင် function မှတဆင့်၎င်းကို incray တစ်ခုထဲသို့ပြောင်းလဲရန်, ထို့နောက် array စစ်ဆင်ရေးမှတဆင့် n အကြောင်းအရာလိုင်းများကိုရယူပါ။ သို့သော်ဤချဉ်းကပ်မှုသည်ကြီးမားသောဖိုင်များအတွက်မထိရောက်သောကြောင့်မှတ်ဥာဏ်များစွာကိုစားသုံးသည်။
ထို့ကြောင့်ကျွန်ုပ်တို့သည်ဖိုင်တစ်ခု၏အဆုံးမှာအကြောင်းအရာများကိုဖတ်ရန်အတွက် Memory Complets နှင့်ထိရောက်သောနည်းလမ်းတစ်ခုလိုအပ်သည်။
စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက် PHP ၏ FSEEKSEK ကဲ့သို့သောလုပ်ငန်းများကိုဖိုင်ကြီးတစ်ပါးအဆုံးတွင်တဖြည်းဖြည်းဖတ်ရန် FENCESK နှင့် FCANTC ကိုသုံးနိုင်သည်။ တိကျသောအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
ပထမ ဦး စွာဖိုင်ကို fopen မှတဆင့်ဖွင့်ပြီးဖိုင်၏အဆုံးသို့ဖိုင်ညွှန်ပြမှုကိုရှာဖွေရန် FSEEK ကိုအသုံးပြုသည်။
$file = "path/to/file.txt";
$file_handle = fopen($file, "r");
fseek($file_handle, 0, SEEK_END);
ထို့နောက်ကျွန်ုပ်တို့သည်အသစ်အဆန်းကိုတွေ့သည်အထိဖိုင်မာတိကာတစ်ခုကိုဖတ်ရန် FCLCEC ကိုဖတ်ရန် FIDCTC ကိုအသုံးပြုရန်လိုအပ်သည်။ အတန်းတစ်ခုဖတ်သည့်အခါ Row contents များကို array သို့သိမ်းပြီး contents rows မရမှီတိုင်အောင်ဆက်လက်ဖတ်ရှုရန်။
$lines = [];
$n = 10;
$pos = ftell($file_handle);
while ($n > 0 && $pos) {
fseek($file_handle, $pos);
if (($char = fgetc($file_handle)) === "\n") {
array_unshift($lines, fgets($file_handle));
$n--;
}
$pos--;
}
ဤလုပ်ငန်းစဉ်တွင်ကျွန်ုပ်တို့သည်တစ်ကြိမ်တွင်ဇာတ်ကောင်တစ် ဦး ကိုဖတ်ရသည်။ ကျွန်ုပ်တို့သည်အသစ်တစ်ခုကိုကြုံတွေ့ရသောအခါ၎င်းသည်မျဉ်းကြောင်းဖတ်ပြီးဖြစ်သည်။ အတန်းတစ်ခုစီကိုဖတ်သည့်အခါတိုင်း၎င်းကိုခင်းကျင်းမှု၏အစတွင်ထည့်သွင်းထားသည့်အစတွင်လိုအပ်သောအတန်းများကိုဖတ်သည်အထိ n သို့ကျဆင်းခြင်းကိုဖြန့်ထားသည်။
FSEEK နှင့် FITNC လုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဖိုင်ကြီး၏အဆုံး၏နိဂုံးများကိုထိရောက်စွာဖတ်ရှုနိုင်သည်။ ဤချဉ်းကပ်နည်းသည်မှတ်ဥာဏ်ကိုကယ်တင်ရုံသာမကဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်သို့တိုက်ရိုက်ဖတ်ရှုခြင်းနှင့်နှိုင်းယှဉ်လျှင်အပြောင်းအလဲမြန်နှုန်းကိုသိသိသာသာတိုးတက်စေသည်။ ဤနည်းလမ်းသည်အထူးသဖြင့်ဖိုင်တစ်ခု၏အဆုံးမှာလိုင်းအနည်းငယ်သာသာရှိသည့်အခြေအနေများအတွက်အထူးသဖြင့်သင့်တော်သည်။ ကြီးမားသောဖိုင်များကိုကိုင်တွယ်ရန်အကောင်းဆုံးဖြစ်သည်။