PHP တွင် Import လုပ်သည့်အခါ imagecreat trewefromgd2 () သည် GD2 ဖိုင်များမှရုပ်ပုံအရင်းအမြစ်များကိုဖန်တီးရန်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော်ဤလုပ်ဆောင်ချက်သည်မမှန်ကန်သောဖိုင်တစ်ခု, လမ်းကြောင်းအမှားတစ်ခုသို့မဟုတ်ဖိုင်မဟုတ်သော format ဖြင့်ကြုံတွေ့ရသည့်အခါခြွင်းချက်တစ်ခုအစားသတိပေးချက်ကိုပစ်ချပြီး Try-Catch မှတဆင့်တိုက်ရိုက်ဖမ်းရန်ခက်ခဲသည်။
ထိုကဲ့သို့သောအမှားအယွင်းများကိုပိုမိုလုံခြုံမှုရှိစေရန်ကိုင်တွယ်ရန်၎င်းတို့ကိုစိတ်ကြိုက်အမှားထိန်းချုပ်ရေးယန္တရားမှတစ်ဆင့်၎င်းတို့ကို oncapsult လုပ်နိုင်သည် ။ ၎င်းသည်သုံးစွဲသူများအားမလိုအပ်သောသတိပေးချက်များကိုမမြင်နိုင်ပါ။
မမှန်ကန်သောဖိုင်များပြုပြင်သည့်အခါ imagecreat နာရီ imagecreatgdgd2 () များသောအားဖြင့်အောက်ပါသတိပေးချက်များကိုပစ်ချလေ့ရှိသည် -
Warning: imagecreatefromgd2(): gd2: format is not supported in /path/to/script.php on line xx
unprocessed မှထွက်ခွာသွားပါကဤသတိပေးစာသည်လမ်းကြောင်းအချက်အလက်များကိုဖော်ထုတ်ရုံသာမကအသုံးပြုသူအတွေ့အကြုံကျဆင်းခြင်းကိုဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့် set_error_handler () ကို အသုံးပြုရန်နှင့်သတိပေးချက်များကိုပိတ်ဆို့ရန်နှင့်ခြွင်းချက်များကိုတူညီစွာကိုင်တွယ် ရန်ကြိုးစားရန် အကြံပြုသည်။
ဤနေရာတွင် imagecreathringdgd2 () အမှားထိန်းချုပ်မှုနှင့်ခြွင်းချက်ကိုင်တွယ်ပေါင်းစပ်မှုပေါင်းစပ်ထားသော function တစ်ခု၏ဥပမာတစ်ခုမှာဤတွင်ဖော်ပြထားသည်။
function safeImageCreateFromGD2($filename) {
// ယာယီအမှားမက်ဆေ့ခ်ျကိုချွေတာ
$lastError = null;
// Custom Error ကိုကိုင်တွယ်ဖြေရှင်းခြင်း
set_error_handler(function($errno, $errstr) use (&$lastError) {
$lastError = $errstr;
});
try {
$image = imagecreatefromgd2($filename);
restore_error_handler();
if (!$image) {
throw new Exception("ပုံအရင်းအမြစ်များကို ဖန်တီး. မရပါ,ဖြစ်ကောင်းမမှန်ကန်ပါ GD2 စာချုပ်စာတမ်း。");
}
return $image;
} catch (Exception $e) {
restore_error_handler();
throw new Exception("ပုံများကိုလုပ်ငန်းစဉ်မအောင်မြင်ပါ:{$lastError}", 0, $e);
}
}
၎င်းကိုဤကဲ့သို့သောအန္တရာယ်ကင်းစွာအသုံးပြုနိုင်သည်။
try {
$image = safeImageCreateFromGD2('https://m66.net/uploads/test.gd2');
// အောင်မြင်သောအခါရုပ်ပုံများကိုဆက်လက်လုပ်ဆောင်ပါ
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
} catch (Exception $e) {
// အမှားများကိုဖမ်းနှင့်ကိုင်တွယ်
error_log($e->getMessage());
echo "Image Loading မအောင်မြင်ပါ,请检查စာချုပ်စာတမ်း格式或路径是否正确。";
}
ဤ encapsulationultulation method သည်အခြား imagecreatfelet * series functions များနှင့်သက်ဆိုင်သည်။
()
imagecreatformmng ()
imagecreathretgif ()
အထက်တွင်ဖော်ပြထားသော Logic ကိုအထွေထွေပုံရိပ် Loading function ကိုအထွေထွေပုံရိပ်တင်ခြင်း function တစ်ခုထဲသို့စိတ်တဇနိုင်သည်။
မြင့်မားသောတည်ငြိမ်မှုလိုအပ်သည့်ပုံရိပ်ထုတ်ယူမှုကဲ့သို့သောဖြစ်ရပ်များတွင် isaecreatgdgd2 () ကိုဖုံးအုပ်ခြင်းနှင့် ကြိုးစားခြင်းကို ပေါင်းစပ်ခြင်းသည်လုံခြုံရေးတိုးတက်စေရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ထုံးစံအမှား handler မှတစ်ဆင့်ကျွန်ုပ်တို့သည်မူလက၎င်းကိုထိန်းချုပ်ရန်နှင့်ဘာသာပြန်ရန်ခက်ခဲသောအမှားအချက်အလက်များကိုဖမ်းယူနိုင်သည်။ ၎င်းသည် Code အားကြံ့ခိုင်မှုကိုတိုးတက်စေရုံသာမကအသုံးပြုသူအတွေ့အကြုံကိုလည်းတိုးတက်စေသည်။
အထက်ပါ Encapsulationulation Logic ကိုသင်၏ Project Framework သို့သင်၏ Project Framework ထဲသို့ 0 င်ရောက်နိုင်သည်။