လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_get_line နှင့် fgets အကြားခြားနားချက်နှင့်အသုံးပြုမှုမြင်ကွင်းများနှိုင်းယှဉ်

stream_get_line နှင့် fgets အကြားခြားနားချက်နှင့်အသုံးပြုမှုမြင်ကွင်းများနှိုင်းယှဉ်

gitbox 2025-05-29

ဘယ်လို fgets () အကျင့်ကိုကျင့်

fgets () ဒေတာအတန်းအတန်းကိုဖတ်ရှုဖို့အများဆုံးအသုံးဝင်သော function ကိုဖြစ်ပါတယ်။ ၎င်း၏အဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -

 fgets(resource $handle, ?int $length = null): string|false
  • $ လက်ကိုင် သည် Open File pointer ( fopen () နှင့်ရရှိသောအတိုင်း) ဖြစ်သည်။

  • $ အရှည်သည် (လိုင်းအားလပ်ချိန်အပါအ 0 င်) အများဆုံးဖတ်ရှုသည့်အရှည်ဖြစ်သည်။ သတ်မှတ်ထားသောမဖော်ပြပါက fgets () ကို မျဉ်း၏အဆုံး ( \ n ) သို့မဟုတ်ဖိုင်၏အဆုံးအထိဖတ်ပါလိမ့်မည်။

အင်္ဂါရပ်များ:

  • အလိုအလျောက်အသစ်တစ်ခုကိုဇာတ်ကောင် ( \ n ) နှင့်အတူအဆုံးသတ်ထားသည်။

  • ပြန်လာ string ကိုအတွက်အသစ်ကပါ 0 င်သည်။

  • "Standard လိုင်းပုံစံ" ကိုဖတ်ရန်သင့်တော်သည်။

  • လိုင်းအဆုံးသတ်အက္ခရာများကိုစိတ်ကြိုက်မလုပ်နိုင်။

ဥပမာ -

 $handle = fopen("https://gitbox.net/data.txt", "r");
while (($line = fgets($handle)) !== false) {
    echo $line;
}
fclose($handle);

stream_get_line () အလုပ်ဖြစ်တယ်

stream_get_line () သည်အောက်ပါအတိုင်းသတ်မှတ်ထားသည့်အတိုင်းသတ်မှတ်ထားသည့်နောက်အခြေခံနှင့်ပြောင်းလွယ်ပြင်လွယ်စာဖတ်ခြင်း function ဖြစ်သည်။

 stream_get_line(resource $handle, int $length, string $ending = ""): string|false
  • $ အရှည်ကို ဖတ်ရန် Bytes အများဆုံးအရေအတွက်ဖြစ်သည်။

  • $ Ending သည်စိတ်ကြိုက်လိုင်းဇာတ်စင်ဇာတ်ကောင် (optional) ဖြစ်သည်။

အင်္ဂါရပ်များ:

  • အဆုံးသတ်ဇာတ်ကောင်ကိုယ်နှိုက်ကိုပြန်မပေးပါ။

  • ဓလေ့ထုံးစံများအနေဖြင့် HTTP ခေါင်းစီးများတွင်အသုံးပြုလေ့အသုံးပြုသောထုံးစံအတိုင်းဇာတ်ကောင်များကိုခွင့်ပြုပါ

  • လိုင်းချိုးများပါ 0 င်သော binary data လုပ်ကွက်များကိုဖတ်ရန်မသင့်တော်ပါ။

  • ပြန်လာသောအကြောင်းအရာတွင်လိုင်းအဆုံးသတ်စာလုံးများမပါ 0 င်သောကြောင့်ဒေတာအဆောက်အအုံများကိုတိကျစွာထိန်းချုပ်ထားသည့်အခြေအနေများအတွက်ပိုမိုသင့်တော်သည်။

ဥပမာ -

 $handle = fopen("https://gitbox.net/api/stream", "r");
while (($line = stream_get_line($handle, 1024, "\r\n")) !== false) {
    echo $line . PHP_EOL;
}
fclose($handle);

ခြားနားချက်၏အကျဉ်းချုပ်

သီးခြားထင်ရှားသော fgetts () stream_get_line ()
လိုင်းချိုးများထည့်သွင်းဖို့ရှိမရှိ ဟုတ်ကဲ့ မဟုတ်
လိုင်းအဆုံးသတ်ဇာတ်ကောင်စိတ်ကြိုက်? မဟုတ် ဟုတ်ကဲ့
ပြပဲှ ယေဘုယျအားဖြင့် ပိုကောင်းတဲ့ (အထူးသဖြင့်ကွန်ယက်စီးဆင်းမှုမှာ)
ပြောင်းလွယ်ပြင်လွယ် နိမ့်သော မြင့်သော
လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ် ဒေသခံစာသားဖိုင်ဖတ်နေ ကွန်ယက်စီးဆင်းမှု, http header parsing, စိတ်ကြိုက် protocol စီးဆင်းမှု

တစ်ခုချင်းစီကိုသင့်လျော်သောအသုံးပြုမှုမြင်ကွင်း

fgets () အတွက်သင့်လျော်သည်:

  • local log files များ (သို့) configuration files များကိုဖတ်ပါ။

  • လျင်မြန်စွာအားဖြင့်စီစဉ်ထားစာသားဒေတာကိုလျင်မြန်စွာဖတ်ပါ။

  • စံထည့်သွင်းမှုသို့မဟုတ်ဖိုင်ထည့်သွင်းရန် scripts များကိုရေးရန်။

stream_get_line () အတွက်သင့်တော်သည်။

  • HTTP သို့မဟုတ် SMTP ကဲ့သို့သော network protocols များတွင် segmented data များကိုဖတ်ပါ။

  • ထိန်းချုပ်မှုအတန်းကို (အဆုံးသတ်သင်္ကေတများဖယ်ထုတ်ခြင်း) ကိုဖတ်ရှုခြင်း။

  • သင်၏ကိုယ်ပိုင် parser ကိုတည်ဆောက်ရန် (ထုံးစံပြ Protocols များကဲ့သို့သောအချက်အလက်များဖြတ်တောက်ခြင်းကို အခြေခံ. အချက်အလက်ဖြတ်ခြင်း) ကိုတည်ဆောက်ပါ။