PHP လုပ်ငန်းစဉ်များသည်များသောအားဖြင့်အသုံးပြုသူ (ဥပမာ, www-data ) အဖြစ် (ဥပမာ, www-data) အဖြစ်အသုံးပြုသည်။ သုံးစွဲသူသည်ဖိုင်တစ်ခုကိုဖျက်ရန်ခွင့်ပြုချက်မရှိပါက လက်မခံပါက ပျက်ကွက်လိမ့်မည်။
$file = '/var/www/html/uploads/temp.jpg';
if (!is_writable($file)) {
echo "လွှဲပြောင်းမဟုတ်ဖိုင်,မဖျက်နိုင်ပါ。";
} else {
unlink($file);
}
ဖြေရှင်းချက် -
ဖိုင်၏ခွင့်ပြုချက်များသည် Php အသုံးပြုသူများကိုရေးရန်ခွင့်ပြုရန်သေချာစေပါ။
ဖိုင်ခွင့်ပြုချက်ကိုပြုပြင်ရန် chmod () ကို သုံးပါ, သို့သော်လုံခြုံရေးကိုဂရုပြုပါ။
chmod($file, 0666); // အရေးအသားခွင့်ပြုချက်မှပြုပြင်မွမ်းမံ
မတည်ရှိသောဖိုင်ကိုဖျက်ရန်ကြိုးစားသည့်အခါ လက်မအကျယ် () သတိပေးချက်ကိုပစ်ချသည်။
if (file_exists($file)) {
unlink($file);
} else {
echo "ဖိုင်မတည်ရှိပါဘူး。";
}
အကြံပြုချက်များ - လက်မခံမီ () မခေါ်ဆိုမီ file_exists နှင့်စစ်ဆေးရန်သေချာပါစေ။
အချို့သော operating systems (အထူးသဖြင့် ပြတင်းပေါက် များ) တွင်ဖိုင်တစ်ခုအားအခြားလုပ်ငန်းစဉ်တစ်ခုမှအသုံးပြုပါကလက်မပြတ်နိုင်ပါ။
ဖြေရှင်းချက် -
၎င်းကိုရေးသားခြင်းသို့မဟုတ်ဖတ်သည့်အခါဖိုင်ကိုဖျက်ခြင်းကိုရှောင်ပါ။
ဖိုင်အမျိုးအစားအားလုံးကိုပိတ်ပါ။
$fp = fopen($file, 'r');
// အသုံးပြုပြီးနောက်
fclose($fp);
unlink($file);
အကယ်. ဆွေမျိုးလမ်းကြောင်းများအသုံးပြုသည်သို့မဟုတ်လမ်းကြောင်းများမှားယွင်းနေပါက၎င်းသည်ဖျက်ပစ်ခြင်းကိုပျက်ပြားစေနိုင်သည်။
အကြံပြုချက် - ပကတိလမ်းကြောင်းများကိုအသုံးပြုရန်ကြိုးစားပါ ။
$realPath = realpath($file);
if ($realPath && file_exists($realPath)) {
unlink($realPath);
}
Debugging နှင့်စာရင်းစစ်ခြင်းများလွယ်ကူချောမွေ့စေသည့်ဖျက်ခြင်းလုပ်ငန်းတစ်ခုချင်းစီ၏အောင်မြင်မှုသို့မဟုတ်ပျက်ကွက်မှုအတွက်အကြောင်းပြချက်ကိုမှတ်တမ်းတင်ပါ။
$logFile = '/var/log/delete_log.txt';
function log_delete($message) {
file_put_contents($GLOBALS['logFile'], date('Y-m-d H:i:s') . ' - ' . $message . PHP_EOL, FILE_APPEND);
}
$file = '/var/www/html/uploads/image.jpg';
if (file_exists($file)) {
if (unlink($file)) {
log_delete("အောင်မြင်စွာဖျက်ပါ: $file");
} else {
log_delete("ဖျက်ခြင်းမအောင်မြင်ပါ: $file");
}
} else {
log_delete("ဖိုင်မတည်ရှိပါဘူး: $file");
}
ဖိုင်တစ်ခုကိုမဖျက်မီ, ၎င်းကို / tmp / delete_queue / delete_queue / cmp / delete_queue / , ၎င်းကိုမတော်တဆဖျက်ခြင်းကိုရှောင်ရှားရန် asetynchronously ကိုရွှေ့ပြောင်းပါ။
$src = '/var/www/html/uploads/file.jpg';
$dest = '/tmp/delete_queue/file.jpg';
if (rename($src, $dest)) {
// နောက်ခံတွင်ပြတ်တောင်းပြတ်တောင်းအချိန်ကိုသန့်ရှင်းရေး /tmp/delete_queue/ ဖိုင်များအတွက်
}
ပယ်ဖျက်ခြင်းပျက်ကွက်ခြင်း ,
set_error_handler(function ($errno, $errstr) {
echo "အမှား: $errstr";
});
@unlink('/var/www/html/uploads/test.jpg');
restore_error_handler();
လမ်းကြောင်းစစ်ဆေးခြင်း, ခွင့်ပြုချက်တရားစီရင်ခြင်း, သစ်ထုတ်လုပ်ခြင်းနှင့်အမှားများကိုကိုင်တွယ်သောလမ်းကြောင်းကိုစစ်ဆေးခြင်း
function safe_delete($file) {
$logFile = '/var/log/delete_log.txt';
$file = realpath($file);
if (!$file || !file_exists($file)) {
file_put_contents($logFile, "ဖိုင်မတည်ရှိပါဘူး: $file\n", FILE_APPEND);
return false;
}
if (!is_writable($file)) {
file_put_contents($logFile, "ဖျက်ရန်ခွင့်ပြုချက်မရှိပါ: $file\n", FILE_APPEND);
return false;
}
if (@unlink($file)) {
file_put_contents($logFile, "အောင်မြင်စွာဖျက်ပါ: $file\n", FILE_APPEND);
return true;
} else {
file_put_contents($logFile, "ဖျက်ခြင်းမအောင်မြင်ပါ: $file\n", FILE_APPEND);
return false;
}
}
// အသုံးပြုမှုဥပမာ
safe_delete('/var/www/html/uploads/avatar.jpg');
သင်၏စီမံကိန်းသည်ဖိုင်စစ်ဆင်ရေးလိုအပ်ချက်များစွာရှိလျှင်ခွင့်ပြုချက်ထိန်းချုပ်မှုထိန်းချုပ်မှုများအပါအ 0 င်ခွင့်ပြုချက်နှင့်အန္တရာယ်များကိုလျှော့ချရန် Gitbox.Net/api/Filesesystem ကဲ့သို့သော Middlem/Api/Filesystem စသည့် Middlem/Api/Filesystem စသည့် middleware service service ကိုအသုံးပြုရန်အကြံပြုသည် ။