လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် Bindec () function ကိုမည်သို့ထိရောက်စွာတားဆီးနိုင်သနည်း။

PHP တွင် Bindec () function ကိုမည်သို့ထိရောက်စွာတားဆီးနိုင်သနည်း။

M66 2025-06-23

PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် Bindec () function ကို binary strings များကိုဒ decimal မတန်ဖိုးများသို့ပြောင်းရန်အသုံးပြုသည်။ နိယာမသည်ရိုးရိုးရှင်းရှင်းနှင့်အကျိုးရှိ သည် ဤဆောင်းပါးသည်ပရိုဂရမ်၏လုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုသေချာစေရန် Bindec () function ကိုထိရောက်စွာတားဆီးရန်မည်သို့ကာကွယ်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ Bindec () function ကို၏အခြေခံအပြုအမူ

Bindec () string parameter ကိုလက်ခံပြီး string သည် binary number is ဟုယူဆသည်။

 echo bindec("1101"); // ထုတ်လုပ်ခြင်း 13

သို့သော် အကယ်. သင်သည် binary non မဟုတ်သောစာလုံးများကိုဖြတ်သန်းပါက -

 echo bindec("1102abc"); 

Bindec () သည် ပထမ ဦး ဆုံး binary မဟုတ်သောဇာတ်ကောင်နှင့်နောက်ဆက်တွဲဇာတ်ကောင်များကိုလျစ်လျူရှုမည်ဖြစ်ပြီးမှန်ကန်သောအပိုင်းကိုသာပြောင်းရွှေ့လိမ့် မည်

၎င်းသည်အမှားတစ်ခုသတင်းပို့လိမ့်မည်မဟုတ်သော်လည်း၎င်းသည်ယုတ္တိရှိသောအားနည်းချက်များကိုဖြစ်ပေါ်စေနိုင်သည်။ တိုက်ခိုက်သူများသည်ဗျာဒိတ်ရူပါရိုက်မဟုတ်သောစာလုံးများဖြင့်ပရိုဂရမ်၏ယုတ္တိဗေဒကို 0 င်ရောက်စွက်ဖက်နိုင်သည်။

2 ။ အန္တရာယ်ကင်းရှင်းရေးအန္တရာယ်ခွဲခြမ်းစိတ်ဖြာ

Non-binary string ကိုထိုးခြင်းဖြစ်နိုင်သည် -

  • ဒေတာအနှောင့်အယှက် : တရားမဝင်ဇာတ်ကောင်များသည်လုပ်ငန်းများ၌ပြုလုပ်သင့်သော binary data များကိုတားဆီးသည်။

  • Business Logic Error - Binary ပြောင်းလဲခြင်းရလဒ်အပေါ် အခြေခံ. ပရိုဂရမ်တရားသူကြီးများသည်တရားစီရင်ခြင်းအမှားများကိုဖြစ်ပေါ်စေသည်။

  • အလားအလာရှိသောတိုက်ခိုက်မှုမျက်နှာပြင် - အခြားအားနည်းချက်များနှင့်ပေါင်းစပ်။ အမြတ်ထုတ်နိုင်သည်။

ထို့ကြောင့် input ကိုတင်းကြပ်စွာစစ်ဆေးခြင်းသည်ကာကွယ်ခြင်းအတွက်သော့ချက်ဖြစ်သည်။

3 ။ ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်ထိရောက်သောနည်းဗျူဟာများ

3.1 Inpline အတည်ပြုခြင်း - ပုံမှန်အသုံးအနှုန်းများကိုတင်းကြပ်စွာကန့်သတ်ရန်အသုံးပြုပါ

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 နှစ်ထပ်ရှိသည်ဟုသေချာစေသည်။

3.2 အမှုများနှင့်နယ်နိမိတ်စစ်ဆေးခြင်း

စိစစ်အတည်ပြုအတည်ပြုလျှင်ပင်လျှံသို့မဟုတ်ခြွင်းချက်များကိုကာကွယ်ရန်နောက်ဆက်တွဲအပြောင်းအလဲအတွက်ကိန်းဂဏန်းအကွာအဝေးတွင်တရားစီရင်ရန်အကြံပြုသည်။

 $decimal = bindec($binary);
if ($decimal < 0 || $decimal > PHP_INT_MAX) {
    die('တန်ဖိုးများကိုခွင့်ပြုအကွာအဝေးထက်ကျော်လွန်');
}

3.3 Encapsulationulation လုပ်ဆောင်ချက်များကို အသုံးပြု. ပေါင်းစည်းခြင်း

လွယ်ကူသောပြုပြင်ထိန်းသိမ်းမှုနှင့်အဆင့်မြှင့်တင်မှုအတွက်လုံခြုံသောပြောင်းလဲခြင်းလုပ်ငန်းလည်ပတ်မှုကို 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();
}

3.4 လုံခြုံရေးကိုမြှင့်တင်ရန် filter function များကိုပေါင်းစပ်ပါ

PHP ၏ built-in filter များသည်ရိုးရှင်းသောအတည်ပြုချက်ကိုပြုလုပ်နိုင်သည်။

 $binary = filter_input(INPUT_GET, 'binary', FILTER_SANITIZE_STRING);
if (!preg_match('/^[01]+$/', $binary)) {
    die('မမှန်ကန်သော binary string ကို');
}

4 ။ အကျဉ်းချုပ်

  • အဆိုပါ 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();
}
?>