အသုံးအများဆုံးပြ problems နာများထဲမှတစ်ခုမှာဖိုင်တစ်ခုဖွင့်ထားသောဖိုင်ကိုဖွင့်သောအခါဖိုင်ခွင့်ပြုချက်အမှားများကိုကြုံတွေ့ရသည်။ အကယ်. PHP script သည်သတ်မှတ်ထားသောဖိုင်သို့ရေးရန်ခွင့်ပြုချက်မလုံလောက်ပါက FOPEN သည် မှားယွင်းစွာ ပြန်လာလိမ့်မည်။
ပစ်မှတ်ထားဖိုင်သည်ခွင့်ပြုချက်မရပါ။
ပစ်မှတ်လမ်းညွှန်သည်ခွင့်ပြုချက်မရပါ။
PHP လုပ်ငန်းစဉ်၏အသုံးပြုသူများသည်ဖိုင်ကိုရယူရန်လုံလောက်သောခွင့်ပြုချက်မရှိပါ။
ဖိုင် (သို့) လမ်းညွှန်သည်သင့်လျော်သောစာရေးခွင့်ခွင့်ပြုချက်ရှိကြောင်းသေချာစေရန်အတွက်ဖိုင်၏ခွင့်ပြုချက်များကို command chmod မှတဆင့်သတ်မှတ်နိုင်သည်။
chmod 666 /path/to/your/file
အကယ်. လမ်းညွှန်သည်ရေးခွင့်ပြုချက်မရှိပါက directory အတွက်ရေးခွင့်ပြုချက်များကိုလည်းသတ်မှတ်နိုင်သည်။
chmod 777 /path/to/your/directory
အကယ်. သင်၏ PHP အစီအစဉ်သည်ကန့်သတ်ထားသောအသုံးပြုသူအောက်တွင်အလုပ်လုပ်နေပါကဖိုင်၏ပိုင်ဆိုင်မှုကိုထိုအသုံးပြုသူနှင့် 0 င်ငွေကို သုံး. Chown command ကို သုံး. ထည့်သွင်းစဉ်းစားနိုင်သည်။
fopen function ကိုသုံးပြီးဖိုင်ကိုဖွ င့ ်သောအခါ, သတ်မှတ်ထားသောဖိုင်လမ်းကြောင်းသည်မတည်ရှိပါက PHP သည် မှားယွင်း သော်လည်းမှားယွင်းသော်လည်း မှားယွင်း သော်လည်းဖိုင်ကိုမဖန်တီးပါ။
ပေးထားသောဖိုင်လမ်းကြောင်းသည်မှားယွင်းသောသို့မဟုတ်လွဲချော်မှုဖြစ်သည်။
ဖိုင်နေထိုင်သောနေရာမရှိပါ။
fopen ကို မခေါ်မီဖိုင်သို့မဟုတ်လမ်းညွှန်တည်ရှိခြင်းရှိမရှိစစ်ဆေးရန် File_exists သို့မဟုတ် is_dir ကို သုံးနိုင်သည်။
if (!file_exists($file)) {
echo "ဖိုင်မတည်ရှိပါဘူး";
}
အထူးသဖြင့်ဆွေမျိုးနှင့်အကြွင်းမဲ့လမ်းကြောင်းများအကြားလမ်းကြောင်းမှန်ကိုမှန်ကန်ကြောင်းသေချာပါစေ။ လမ်းကြောင်းပြ problems နာများကိုရှောင်ရှားရန်ပကတိလမ်းကြောင်းများကိုအသုံးပြုရန်ကြိုးစားပါ။
အကယ်. ဖိုင်ကိုအခြားလုပ်ငန်းစဉ်တစ်ခုသို့မဟုတ်အစီအစဉ်တစ်ခုဖြင့်သော့ခတ်ထားခြင်းခံရပါက PHP ၏ FOPEN သည် အထူးသဖြင့်တစ်ပြိုင်နက်တည်းစစ်ဆင်ရေးများရှိသည့်အခါကျရှုံးနိုင်သည်။ ယခုအချိန်တွင် FOPEN သည် မှားယွင်းသော 0 င်ရောက်မှုကိုပြန်လည်ရယူခြင်းမပြုနိုင်ပါ။
ဖိုင်ကိုအခြားဖြစ်စဉ်များသို့မဟုတ်အသုံးပြုသူများကသိမ်းပိုက်ထားသည်။
ဆာဗာ၏ဖိုင်သော့ခတ်ခြင်းယန္တရား (ဖိုင်စနစ်သော့ခတ်ခြင်း) ။
လုပ်ငန်းလည်ပတ်နေစဉ်အတွင်းဖိုင်ကိုအခြားလုပ်ငန်းစဉ်များကသိမ်းပိုက်နိုင်ရန်ဖိုင်ကိုသော့ခတ်ရန်ဖိုင်ကိုသော့ခတ်ရန် flock function ကိုသုံးနိုင်သည်။ နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$file = fopen('file.txt', 'w');
if (flock($file, LOCK_EX)) { // သီးသန့်သော့ခတ်ပါ
fwrite($file, "အကြောင်းအရာရေးပါ");
flock($file, LOCK_UN); // သော့ခတ်ကိုလွှတ်လိုက်ပါ
} else {
echo "ဖိုင်များကိုသော့ခတ်။ မရပါ";
}
fclose($file);
ဖိုင်များ operating လုပ်သည့်အခါအခြားဖြစ်စဉ်များသည်အချိန်ကြာမြင့်စွာသော့ခတ်ထားရန်အချိန်ကြာမြင့်စွာမထားကြောင်းသေချာစေပါ။
fopen ကို အသုံးပြုသောအခါမသင့်တော်သော modes များကိုရွေးချယ်ခြင်းသည်လည်းပြ problems နာများဖြစ်စေနိုင်သည်။ ဥပမာအားဖြင့်, စာ roud-file တစ်ခုဖွင့်ရန်သို့မဟုတ်ဖိုင်ပါအကြောင်းအရာများကိုရှင်းလင်းသော W W Mode တွင်ရှိပြီးသားဖိုင်ကိုဖွင့်ပါ။
မသင့်လျော်သောဖိုင်ဖွင့်ထားသောစနစ်ကိုအသုံးပြုခြင်းသည်မမျှော်လင့်သောအချက်အလက်ဆုံးရှုံးမှုကိုဖြစ်ပေါ်စေနိုင်သည်။
ရေးသားထားသောဖိုင်ကိုဖွင့်ရန် (ဥပမာ r mode) မှားယွင်းသော mode ကိုအသုံးပြုခဲ့သည်။
fopen ကို အသုံးပြုသောအခါမှန်ကန်သောအဖွင့် mode ကိုရွေးချယ်ပါ။
W mode ဖိုင်ကိုရှင်းပြီးရေးလိမ့်မည်။
ဖိုင် တစ်ခု၏ အဆုံးမှာအကြောင်းအရာကိုထည့်ပါလိမ့်မည်။
W + နှင့် A + Modes များသည်စစ်ဆင်ရေးများကိုဖတ်ရန်နှင့်ရေးရန်ခွင့်ပြုသည်, သို့သော်ယခင်ကဖိုင်ကိုပါ 0 င်သည်။
ဖိုင်အကြောင်းအရာများတည်ရှိခြင်းရှိမရှိမသေချာသည့်အခါလုံခြုံစိတ်ချရသောအရေးအသားအတွက် A + Mode ကိုသုံးနိုင်သည်။
အကယ်. သင်သည်အလွန်ကြီးမားသောဖိုင်များကိုရေးရန်ကြိုးစားပါကအထူးသဖြင့်မှတ်ဉာဏ်မလုံလောက်ပါကမှတ်ဉာဏ်မလုံလောက်ခြင်းသို့မဟုတ် PHP ဖိုင်တင်ခြင်း / ရေးခြင်းကြုံတွေ့ရနိုင်သည်။
ဆာဗာ (သို့) PHP ဖွဲ့စည်းမှုတွင်မှတ်ဉာဏ်ကန့်သတ်ချက်အလွန်နည်းပါးသည်။
ကြီးမားသောဖိုင်များရေးသားရာတွင် PHP ၏ configuration ကန့်သတ်ချက်ကိုကျော်လွန်သည်။
Memory Limit နှင့်အများဆုံး PHP.ini ဖိုင်တွင်အများဆုံးတင်ပါ။
memory_limit = 256M
post_max_size = 50M
upload_max_filesize = 50M
များစွာသောဖိုင်အမျိုးအစားအတွက် streaming ကိုအသုံးပြုခြင်းကို အသုံးပြု. အကြောင်းအရာများကိုတစ်ပြိုင်နက်တည်းတင်ခြင်းကိုရှောင်ရှားရန် (linear ရေးသားခြင်းသို့မဟုတ်ပိတ်ပင်တားဆီးမှု) ကိုစဉ်းစားပါ။
အထူးကိစ္စရပ်များတွင်ဖိုင်စနစ်သည်အလျင်အမြန်မလုံလောက်သော disk နေရာမလုံလောက်ခြင်း, ဖိုင်စနစ်၏အကျင့်ပျက်ခြစားမှုစသည့် ပြ problems နာများရှိနိုင်သည်။
မလုံလောက် disk ကိုအာကာသ။
ဖိုင်စနစ်သည်အကျင့်ပျက်ခြစားမှုသို့မဟုတ်ဖတ်ပါ။
ဖိုင်စနစ်၏ကျန်းမာရေးကိုသေချာစေရန်ဆာဗာ၏ disk နေရာကိုပုံမှန်စစ်ဆေးပါ။
ခွဲစိတ်ကုသမှုမတိုင်မီ disk_free_space () disk speck speck ကို Disk အပြည့်အဝမအောင်မြင်စေရန် Disk နေရာကိုစစ်ဆေးရန်အသုံးပြုပါ။
if (disk_free_space("/") < 1000000) { // ထက်နည်းသော1MB
echo "မလုံလောက် disk ကိုအာကာသ";
}
ဖိုင်တစ်ခုသို့စာရေးသောအခါဖိုင် pointer အနေအထားသည်ရေးချခြင်း၏ရလဒ်ကိုအကျိုးသက်ရောက်သည်။ အကယ်. ဖိုင်ညွှန်းကိန်းသည်မှန်ကန်သောနေရာ၌မရှိပါက၎င်းသည်ပျက်ကွက်ခြင်းသို့မဟုတ်ဒေတာများကိုရေးသားရန်ဖြစ်စေနိုင်သည်။
ဖိုင်ညွှန်ပြချက်သည်မှန်ကန်သောဖတ် / ရေးရန်အနေအထားတွင်မရှိပါ။
FTELL POINTER အနေအထားကိုစစ်ဆေးရန် FTell ကို သုံးပါ။
လိုအပ်သည့်အခါဖိုင် pointer အနေအထားကိုထိန်းညှိရန် FESEK ကို သုံးပါ။
သက်ဆိုင်သောတက်(ဂ်)များ:
fopen