PHP တွင်ဖိုင်စစ်ဆင်ရေးသည်ဖွံ့ဖြိုးရေးလုပ်ငန်းများတွင်အသုံးများသောလိုအပ်ချက်များအနက်မှတစ်ခုဖြစ်သည်။ stream_supports_lock function သည် PHP မှပေးသောလက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် File Stream လက်ကိုင်သည်သော့ခတ်ခြင်းလုပ်ငန်းများကိုထောက်ခံမှုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ ဤဆောင်းပါးသည် file လက်ကိုင်စီမံခန့်ခွဲမှုနှင့်ဖိုင် သော့ခတ်ခြင်းများ ကိုပေါင်းစပ်ခြင်း, ဖိုင်လက်ကိုင်စီမံခန့်ခွဲမှုနှင့်ဖိုင်သော့ခတ်ခြင်းများကိုပေါင်းစပ်ခြင်း, ဖိုင်လက်ကိုင်စီမံခန့်ခွဲမှုနှင့်ဖိုင်သော့ခတ်ခြင်းများကိုပေါင်းစပ်ညှိနှိုင်းနိုင်ကြောင်းအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။
Steam_supports_lock သည် PHP ရှိ file တစ်ခု၏သော့ခတ်ခြင်းရှိမရှိရှာဖွေရန် PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
bool stream_supports_lock ( resource $stream )
Parameter $ stream သည်ဖိုင်စီးရင်းမြစ်တစ်ခုဖြစ်သည်။
Return Value သည် boolean value တစ်ခုဖြစ်ပြီး True Mount Locking ကိုထောက်ခံသည်, မှားယွင်းသော နည်းလမ်းများမထောက်ပံ့ပါ။
၎င်းသည်သော့ခတ်ခြင်းကိုမပံ့ပိုးသောစီးဆင်းမှုများပေါ်တွင်သော့ခတ်ခြင်းများပြုလုပ်ရန်အလွန်အသုံးဝင်သည်, အမှားအယွင်းများသို့မဟုတ်ခြွင်းချက်များဖြစ်ပေါ်စေသည်။
ဖိုင် (သို့) ကွန်ယက်အရင်းအမြစ်တစ်ခုကိုဖွင့်လိုက်တဲ့အခါစက်တွေအားလုံးဟာ file locking ကိုအထောက်အပံ့ပေးတယ်။ ဥပမာအားဖြင့်, ပုံမှန် local file streams ပံ့ပိုးမှုစင်တာသည် HTTP Streams (သို့) အထူးလုပ်ထုံးလုပ်နည်းအချို့၏စီးဆင်းမှုမရှိသော်လည်း။ Stream_supports_lock ကို စီရင်ခြင်းအားဖြင့်သင်သည် သိုးထိန်း () သော့ခတ် function ကိုမခေါ်မီမှန်ကန်သောယုတ္တိဗေဒအပြောင်းအလဲကိုပြုလုပ်နိုင်သည်။
အောက်ပါဥပမာသည် 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 ကို အသုံးပြုပါ။ ၎င်းသည်မထောက်ပံ့သောစီးဆင်းမှုများကိုသော့ခတ်သောအခါအမှားအယွင်းများကိုရှောင်ရှားသည်။
scream type <br> သော့ခတ်ခြင်း, ကွန်ယက်စီးဆင်းမှုများ, ချုံ့သောစမ်းချောင်းများစသည်တို့ကိုမထောက်ပံ့ပါနှင့်။
Lock Mode <br> <br> သိုးအုပ်ကို အသုံးပြုသောအခါအသုံးပြုသောသော့ခတ်ထားသော mode များမှာ -
Lock_sh : Shared Block, Multiple Read Operations အတွက်သင့်တော်သည်။
lock_ex : သီးသန့်သော့ခတ်ခြင်း,
lock_un : သော့ခတ်ကိုလွှတ်လိုက်ပါ။
ဖိုင်ဖွင့်ခြင်း Mode <br> Progring Mode ကိုဖွင့်ရန်ဖိုင်ကိုဖတ်ရန် mode တွင်ဖွင့်ရမည်။
ခြွင်းချက်ကိုင်တွယ် ပရိုဂရမ်၏ပုံမှန်မဟုတ်သောပြတ်တောက်ခြင်းကြောင့်သော့ခတ်ခြင်းကိုရှောင်ရှားရန်အတွက်ခြွင်းချက်များသို့မဟုတ်အမှားများကိုဖိုင်များဆောင်ရွက်ရန်,
stream_supports_lock function ကိုမှတစ်ဆင့်ဖိုင်စီးဆင်းမှုကိုသော့ခတ်ခြင်းရှိမရှိနှင့်ဖိုင်စစ်ဆင်ရေးများ၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုထိရောက်စွာရှောင်ရှားရန် File Locks နှင့်ပေါင်းစပ်ခြင်းရှိမရှိကိုကျိုးကြောင်းဆီလျော်စွာဆုံးဖြတ်နိုင်သည် ။ ဖိုင်သော့ခတ်ခြင်းမပြုမီစီးဆင်းမှုကိုအတည်ပြုရန်သတိရရန်သတိရပါ။