PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် Bindec () function ကို binary strings များကိုဒ decimal မတန်ဖိုးများသို့ပြောင်းရန်အသုံးပြုသည်။ နိယာမသည်ရိုးရိုးရှင်းရှင်းနှင့်အကျိုးရှိ သည် ။ ဤဆောင်းပါးသည်ပရိုဂရမ်၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုသေချာစေရန် Bindec () function ကိုထိရောက်စွာတားဆီးရန်မည်သို့ကာကွယ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Bindec () string parameter ကိုလက်ခံပြီး string သည် binary number is ဟုယူဆသည်။
echo bindec("1101"); // ထုတ်လုပ်ခြင်း 13
သို့သော် အကယ်. သင်သည် binary non မဟုတ်သောစာလုံးများကိုဖြတ်သန်းပါက -
echo bindec("1102abc");
Bindec () သည် ပထမ ဦး ဆုံး binary မဟုတ်သောဇာတ်ကောင်နှင့်နောက်ဆက်တွဲဇာတ်ကောင်များကိုလျစ်လျူရှုမည်ဖြစ်ပြီးမှန်ကန်သောအပိုင်းကိုသာပြောင်းရွှေ့လိမ့် မည် ။
၎င်းသည်အမှားတစ်ခုသတင်းပို့လိမ့်မည်မဟုတ်သော်လည်း၎င်းသည်ယုတ္တိရှိသောအားနည်းချက်များကိုဖြစ်ပေါ်စေနိုင်သည်။ တိုက်ခိုက်သူများသည်ဗျာဒိတ်ရူပါရိုက်မဟုတ်သောစာလုံးများဖြင့်ပရိုဂရမ်၏ယုတ္တိဗေဒကို 0 င်ရောက်စွက်ဖက်နိုင်သည်။
Non-binary string ကိုထိုးခြင်းဖြစ်နိုင်သည် -
ဒေတာအနှောင့်အယှက် : တရားမဝင်ဇာတ်ကောင်များသည်လုပ်ငန်းများ၌ပြုလုပ်သင့်သော binary data များကိုတားဆီးသည်။
Business Logic Error - Binary ပြောင်းလဲခြင်းရလဒ်အပေါ် အခြေခံ. ပရိုဂရမ်တရားသူကြီးများသည်တရားစီရင်ခြင်းအမှားများကိုဖြစ်ပေါ်စေသည်။
အလားအလာရှိသောတိုက်ခိုက်မှုမျက်နှာပြင် - အခြားအားနည်းချက်များနှင့်ပေါင်းစပ်။ အမြတ်ထုတ်နိုင်သည်။
ထို့ကြောင့် input ကိုတင်းကြပ်စွာစစ်ဆေးခြင်းသည်ကာကွယ်ခြင်းအတွက်သော့ချက်ဖြစ်သည်။
Bindec () မခေါ်မီ input တွင် 0 နှင့် 1 သာပါ 0 င်ကြောင်းအတည်ပြုရန်ပုံမှန်အသုံးအနှုန်းများကိုသုံးပါ။
$binary = $_GET['binary'] ?? '';
if (!preg_match('/^[01]+$/', $binary)) {
// တရားမဝင် input ကိုအပြောင်းအလဲနဲ့
die('အဆိုပါ input ကိုစင်ကြယ်သော binary string ကိုဖြစ်ရမည်');
}
$result = bindec($binary);
echo "ရလဒ်ကိုပြောင်းလဲ:" . $result;
ဤတွင် Preg_match (/ ^ [01] + $ / ', $ binary) သည် string သည် 0 နှင့် 1 တွင်ပါဝင်ပြီးအနည်းဆုံး 1 နှစ်ထပ်ရှိသည်ဟုသေချာစေသည်။
စိစစ်အတည်ပြုအတည်ပြုလျှင်ပင်လျှံသို့မဟုတ်ခြွင်းချက်များကိုကာကွယ်ရန်နောက်ဆက်တွဲအပြောင်းအလဲအတွက်ကိန်းဂဏန်းအကွာအဝေးတွင်တရားစီရင်ရန်အကြံပြုသည်။
$decimal = bindec($binary);
if ($decimal < 0 || $decimal > PHP_INT_MAX) {
die('တန်ဖိုးများကိုခွင့်ပြုအကွာအဝေးထက်ကျော်လွန်');
}
လွယ်ကူသောပြုပြင်ထိန်းသိမ်းမှုနှင့်အဆင့်မြှင့်တင်မှုအတွက်လုံခြုံသောပြောင်းလဲခြင်းလုပ်ငန်းလည်ပတ်မှုကို encapsult
function safeBindec(string $binary): int {
if (!preg_match('/^[01]+$/', $binary)) {
throw new InvalidArgumentException('အဆိုပါ input ကိုစင်ကြယ်သော binary string ကိုဖြစ်ရမည်');
}
$decimal = bindec($binary);
if ($decimal < 0 || $decimal > PHP_INT_MAX) {
throw new OutOfRangeException('တန်ဖိုးများကိုခွင့်ပြုအကွာအဝေးထက်ကျော်လွန်');
}
return $decimal;
}
// အသုံးပြုမှုဥပမာ
try {
$input = $_POST['bin'] ?? '';
$result = safeBindec($input);
echo "လုံခြုံသောပြောင်းလဲခြင်းရလဒ်များ:" . $result;
} catch (Exception $e) {
echo "အမှား:" . $e->getMessage();
}
PHP ၏ built-in filter များသည်ရိုးရှင်းသောအတည်ပြုချက်ကိုပြုလုပ်နိုင်သည်။
$binary = filter_input(INPUT_GET, 'binary', FILTER_SANITIZE_STRING);
if (!preg_match('/^[01]+$/', $binary)) {
die('မမှန်ကန်သော binary string ကို');
}
အဆိုပါ bindec () function ကိုတစ်စိတ်တစ်ပိုင်းဆေးထိုးအန္တရာယ်ဖြစ်နိုင်သော binary non-binary ဇာတ်ကောင်တစ်စိတ်တစ်ပိုင်း parines ဖြစ်ပါတယ်။
အရေးအကြီးဆုံးအချက်ကတော့ခေါ်ဆိုမှုမတိုင်မှီ 0 0 နဲ့ 1 ကို သာခွင့်ပြုပါ။
ပုံမှန်အသုံးအနှုန်းများနှင့်ခြွင်းချက်ကိုင်တွယ်ခြင်းပေါင်းစပ်ခြင်းကခိုင်လုံသောလုံခြုံရေးယန္တရားကိုရရှိစေသည်။
လွယ်ကူသောပြုပြင်ထိန်းသိမ်းမှုနှင့်ပေါင်းစည်းခြင်းစီမံခန့်ခွဲမှုအတွက်စိစစ်ခြင်းနှင့်ပြောင်းလဲခြင်းယုတ္တိဗေဒကို encapsulate လုပ်ရန်အကြံပြုသည်။
<?php
// လုံခြုံစိတ်ချရသောအသုံးပြုမှု၏နမူနာကုဒ်သရုပ်ပြ bindec()
function safeBindec(string $binary): int {
if (!preg_match('/^[01]+$/', $binary)) {
throw new InvalidArgumentException('အဆိုပါ input ကိုစင်ကြယ်သော binary string ကိုဖြစ်ရမည်');
}
$decimal = bindec($binary);
if ($decimal < 0 || $decimal > PHP_INT_MAX) {
throw new OutOfRangeException('တန်ဖိုးများကိုခွင့်ပြုအကွာအဝေးထက်ကျော်လွန်');
}
return $decimal;
}
try {
// ထံမှယူဆ URL binary strings ရယူပါ,ဒိုမိန်းအမည်ကိုအစားထိုးပါ m66.net
$input = $_GET['bin'] ?? '';
$result = safeBindec($input);
echo "ရလဒ်ကိုပြောင်းလဲ:" . $result;
} catch (Exception $e) {
echo "အမှား:" . $e->getMessage();
}
?>