လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် PHP တွင် stream_supports_lock function ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်နည်း။

PHP တွင် PHP တွင် stream_supports_lock function ကိုမည်သို့မှန်ကန်စွာအသုံးပြုရမည်နည်း။

M66 2025-06-22

PHP တွင်ဖိုင်စစ်ဆင်ရေးသည်ဖွံ့ဖြိုးရေးလုပ်ငန်းများတွင်အသုံးများသောလိုအပ်ချက်များအနက်မှတစ်ခုဖြစ်သည်။ stream_supports_lock function သည် PHP မှပေးသောလက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် File Stream လက်ကိုင်သည်သော့ခတ်ခြင်းလုပ်ငန်းများကိုထောက်ခံမှုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ ဤဆောင်းပါးသည် file လက်ကိုင်စီမံခန့်ခွဲမှုနှင့်ဖိုင် သော့ခတ်ခြင်းများ ကိုပေါင်းစပ်ခြင်း, ဖိုင်လက်ကိုင်စီမံခန့်ခွဲမှုနှင့်ဖိုင်သော့ခတ်ခြင်းများကိုပေါင်းစပ်ခြင်း, ဖိုင်လက်ကိုင်စီမံခန့်ခွဲမှုနှင့်ဖိုင်သော့ခတ်ခြင်းများကိုပေါင်းစပ်ညှိနှိုင်းနိုင်ကြောင်းအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။


1 ။ stream_supports_lock ဆိုတာဘာလဲ။

Steam_supports_lock သည် PHP ရှိ file တစ်ခု၏သော့ခတ်ခြင်းရှိမရှိရှာဖွေရန် PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 bool stream_supports_lock ( resource $stream )
  • Parameter $ stream သည်ဖိုင်စီးရင်းမြစ်တစ်ခုဖြစ်သည်။

  • Return Value သည် boolean value တစ်ခုဖြစ်ပြီး True Mount Locking ကိုထောက်ခံသည်, မှားယွင်းသော နည်းလမ်းများမထောက်ပံ့ပါ။

၎င်းသည်သော့ခတ်ခြင်းကိုမပံ့ပိုးသောစီးဆင်းမှုများပေါ်တွင်သော့ခတ်ခြင်းများပြုလုပ်ရန်အလွန်အသုံးဝင်သည်, အမှားအယွင်းများသို့မဟုတ်ခြွင်းချက်များဖြစ်ပေါ်စေသည်။


2 ။ ကြည့်ရှုပါ

ဖိုင် (သို့) ကွန်ယက်အရင်းအမြစ်တစ်ခုကိုဖွင့်လိုက်တဲ့အခါစက်တွေအားလုံးဟာ file locking ကိုအထောက်အပံ့ပေးတယ်။ ဥပမာအားဖြင့်, ပုံမှန် local file streams ပံ့ပိုးမှုစင်တာသည် HTTP Streams (သို့) အထူးလုပ်ထုံးလုပ်နည်းအချို့၏စီးဆင်းမှုမရှိသော်လည်း။ Stream_supports_lock ကို စီရင်ခြင်းအားဖြင့်သင်သည် သိုးထိန်း () သော့ခတ် function ကိုမခေါ်မီမှန်ကန်သောယုတ္တိဗေဒအပြောင်းအလဲကိုပြုလုပ်နိုင်သည်။


3 ။ နမူနာကုဒ်

အောက်ပါဥပမာသည် stream_supports_lock function ရှိသောဖိုင်ကိုလုံခြုံစွာပိတ်နည်းကိုပြသသည်။

 <?php
// ဖိုင်ကိုဖွင့်ပါ
$filename = 'example.txt';
$handle = fopen("http://m66.net/path/to/file", "r+");

if ($handle === false) {
    die("无法ဖိုင်ကိုဖွင့်ပါ");
}

// စီးဆင်းမှုသည်သော့ခတ်ခြင်းရှိမရှိစစ်ဆေးပါ
if (stream_supports_lock($handle)) {
    // သော့ခတ်ထည့်ရန်ကြိုးစားပါ,LOCK_EX သီးသန့်သော့ခတ်ဖော်ပြသည်
    if (flock($handle, LOCK_EX)) {
        echo "ဖိုင်သော့ခတ်,အပြောင်းအလဲနဲ့စတင်ပါ...\n";

        // ဖိုင်တစ်ခုကိုဖတ်ပါသို့မဟုတ်ရေးပါ
        // ...

        // သော့ခတ်ကိုလွှတ်လိုက်ပါ
        flock($handle, LOCK_UN);
        echo "အပြောင်းအလဲနဲ့ပြီးစီးခဲ့သည်,သော့ခတ်ဖြန့်ချိခဲ့သည်。\n";
    } else {
        echo "ဖိုင်များကိုသော့ခတ်။ မရပါ。\n";
    }
} else {
    echo "ဤစီးဆင်းမှုသည်သော့ခတ်စစ်ဆင်ရေးများကိုမထောက်ခံပါ,သော့ခတ်ခြေလှမ်းကျော်သွားပါ。\n";
}

// ဖိုင်လက်ကိုင်ကိုပိတ်ပါ
fclose($handle);
?>

ဒီဥပမာမှာ FORTAR ကိုဖွင့်ဖို့ fopen ကို ဦး စွာအသုံးပြုပါ။ ဥပမာအားဖြင့် url domain name ကို M66.net ဖြင့်အစားထိုးထားကြောင်းသတိပြုပါ။ ထို့နောက် stream_supports_lock ကိုသော့ခတ် ခြင်းများ ကိုသော့ခတ်ထားခြင်းရှိမရှိရှာဖွေရန် Stream_supports_lock ကို အသုံးပြုပါ။ ၎င်းသည်မထောက်ပံ့သောစီးဆင်းမှုများကိုသော့ခတ်သောအခါအမှားအယွင်းများကိုရှောင်ရှားသည်။


4 ။ မှတ်စုများ

  1. scream type <br> သော့ခတ်ခြင်း, ကွန်ယက်စီးဆင်းမှုများ, ချုံ့သောစမ်းချောင်းများစသည်တို့ကိုမထောက်ပံ့ပါနှင့်။

  2. Lock Mode <br> <br> သိုးအုပ်ကို အသုံးပြုသောအခါအသုံးပြုသောသော့ခတ်ထားသော mode များမှာ -

    • Lock_sh : Shared Block, Multiple Read Operations အတွက်သင့်တော်သည်။

    • lock_ex : သီးသန့်သော့ခတ်ခြင်း,

    • lock_un : သော့ခတ်ကိုလွှတ်လိုက်ပါ။

  3. ဖိုင်ဖွင့်ခြင်း Mode <br> Progring Mode ကိုဖွင့်ရန်ဖိုင်ကိုဖတ်ရန် mode တွင်ဖွင့်ရမည်။

  4. ခြွင်းချက်ကိုင်တွယ် ပရိုဂရမ်၏ပုံမှန်မဟုတ်သောပြတ်တောက်ခြင်းကြောင့်သော့ခတ်ခြင်းကိုရှောင်ရှားရန်အတွက်ခြွင်းချက်များသို့မဟုတ်အမှားများကိုဖိုင်များဆောင်ရွက်ရန်,


5 ။ အကျဉ်းချုပ်

stream_supports_lock function ကိုမှတစ်ဆင့်ဖိုင်စီးဆင်းမှုကိုသော့ခတ်ခြင်းရှိမရှိနှင့်ဖိုင်စစ်ဆင်ရေးများ၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုထိရောက်စွာရှောင်ရှားရန် File Locks နှင့်ပေါင်းစပ်ခြင်းရှိမရှိကိုကျိုးကြောင်းဆီလျော်စွာဆုံးဖြတ်နိုင်သည် ဖိုင်သော့ခတ်ခြင်းမပြုမီစီးဆင်းမှုကိုအတည်ပြုရန်သတိရရန်သတိရပါ။