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

PHP Delete function ကိုဖျက်ခြင်း function ကိုဖျက်ပစ်သည့်အခါပယ်ဖျက်ခြင်းပျက်ကွက်ခြင်းကိုမည်သို့ရှောင်ရှားရမည်နည်း

gitbox 2025-06-03

Files ကိုဖျက်ရန် () မအောင်မြင်သည့်အကြောင်းရင်းများ

1 ။ မလုံလောက်ခွင့်ပြုချက်

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); // အရေးအသားခွင့်ပြုချက်မှပြုပြင်မွမ်းမံ

2 ။ ဖိုင်မတည်ရှိပါဘူး

မတည်ရှိသောဖိုင်ကိုဖျက်ရန်ကြိုးစားသည့်အခါ လက်မအကျယ် () သတိပေးချက်ကိုပစ်ချသည်။

 if (file_exists($file)) {
    unlink($file);
} else {
    echo "ဖိုင်မတည်ရှိပါဘူး。";
}

အကြံပြုချက်များ - လက်မခံမီ () မခေါ်ဆိုမီ file_exists နှင့်စစ်ဆေးရန်သေချာပါစေ။

3 ။ ဖိုင်များကိုသိမ်းပိုက်သို့မဟုတ်သော့ခတ်နေကြသည်

အချို့သော operating systems (အထူးသဖြင့် ပြတင်းပေါက် များ) တွင်ဖိုင်တစ်ခုအားအခြားလုပ်ငန်းစဉ်တစ်ခုမှအသုံးပြုပါကလက်မပြတ်နိုင်ပါ။

ဖြေရှင်းချက် -

  • ၎င်းကိုရေးသားခြင်းသို့မဟုတ်ဖတ်သည့်အခါဖိုင်ကိုဖျက်ခြင်းကိုရှောင်ပါ။

  • ဖိုင်အမျိုးအစားအားလုံးကိုပိတ်ပါ။

 $fp = fopen($file, 'r');
// အသုံးပြုပြီးနောက်
fclose($fp);
unlink($file);

4 ။ ဆွေမျိုးလမ်းကြောင်းများသို့မဟုတ်လမ်းကြောင်းအမှားများကိုသုံးပါ

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

အကြံပြုချက် - ပကတိလမ်းကြောင်းများကိုအသုံးပြုရန်ကြိုးစားပါ

 $realPath = realpath($file);
if ($realPath && file_exists($realPath)) {
    unlink($realPath);
}

လက်တွေ့ကာကွယ်ရေးအစီအမံများ

1 ။ မှတ်တမ်းမှတ်လွဲခြင်းစစ်ဆင်ရေးမှတ်တမ်းမှတ်တမ်း

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");
}

2 ။ အန္တရာယ်များကိုသီးခြားခွဲထုတ်ရန်ယာယီလမ်းညွှန်များကိုသုံးပါ

ဖိုင်တစ်ခုကိုမဖျက်မီ, ၎င်းကို / 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/ ဖိုင်များအတွက်
}

3 ။ အမှားကိုင်တွယ်မှုကို set up

ပယ်ဖျက်ခြင်းပျက်ကွက်ခြင်း ,

 set_error_handler(function ($errno, $errstr) {
    echo "အမှား: $errstr";
});
@unlink('/var/www/html/uploads/test.jpg');
restore_error_handler();

ဥပမာ - Secure Encapsulationultuls Delete function ကို

လမ်းကြောင်းစစ်ဆေးခြင်း, ခွင့်ပြုချက်တရားစီရင်ခြင်း, သစ်ထုတ်လုပ်ခြင်းနှင့်အမှားများကိုကိုင်တွယ်သောလမ်းကြောင်းကိုစစ်ဆေးခြင်း

 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');

တတိယပါတီဖိုင်စီမံခန့်ခွဲမှု MANDWANWANGWARK နှင့်အတူကြံ့ခိုင်မှုကိုတိုးတက်စေသည်

သင်၏စီမံကိန်းသည်ဖိုင်စစ်ဆင်ရေးလိုအပ်ချက်များစွာရှိလျှင်ခွင့်ပြုချက်ထိန်းချုပ်မှုထိန်းချုပ်မှုများအပါအ 0 င်ခွင့်ပြုချက်နှင့်အန္တရာယ်များကိုလျှော့ချရန် Gitbox.Net/api/Filesesystem ကဲ့သို့သော Middlem/Api/Filesystem စသည့် Middlem/Api/Filesystem စသည့် middleware service service ကိုအသုံးပြုရန်အကြံပြုသည်