PHP ရီဂျူလာ ဖော်မြူလာများတွင် အိတ်ကပ် အရေအတွက် အလုံး
အောက်ပါအခြေအနေကို သုံးသပ်ကြည့်ပါ။ ကျွန်ုပ်တို့တွင်
ပြောင်းလဲနိုင်သော နှစ်တစ်ခု ရှိသည်ဆိုပါစို့၊ ၎င်းကို
1990 မှ 2099 အထိ ပြောင်းလဲနိုင်သည်။
နှစ်၏ နောက်ဆုံးဂဏန်းနှစ်လုံးကို အိတ်ကပ်ထဲမှ ရယူလိုသည်ဟု
ယူဆပါ။ သင့်လျော်သော ရီဂျူလာ ဖော်မြူလာကို ရေးကြမည်။
<?php
$reg = '#19(9\d)|20(\d\d)#';
?>
သို့သော်၊ ဤနေရာတွင် မသက်မသာ ခံစားရမှုတစ်ခု ကျွန်ုပ်တို့ကို စောင့်နေသည်။ အကြောင်းမှာ ရာစုနှစ်အဟောင်း အတွက် ဂဏန်းနှစ်လုံးသည် ပထမအိတ်ကပ်ထဲသို့ ရောက်သွားမည်၊ ဒုတိယရာစုနှစ်အတွက် ဂဏန်းများမှာ ဒုတိယအိတ်ကပ်ထဲသို့ ရောက်သွားမည်။ နမူနာများဖြင့် ကြည့်ကြပါစို့။
ပထမနမူနာ အောက်ပါအတိုင်းဖြစ်သည်။
<?php
$str = '1991';
preg_match($reg, $str, $res);
var_dump($res); // [1 => '91']
?>
ဒုတိယနမူနာ အောက်ပါအတိုင်းဖြစ်သည်။
<?php
$str = '2021';
preg_match($reg, $str, $res);
var_dump($res); // [2 => '21']
?>
ယခု ကျွန်ုပ်တို့ ရှာတွေ့သော နှစ်၏ ဂဏန်းများကို ပြောင်းလဲနိုင်သော အမည်တစ်ခုထဲသို့ ရေးထည့်လိုသည်ဆိုပါစို့။ ပြဿနာတစ်ခုကို ကျွန်ုပ်တို့ ကြုံရမည်၊ အကြောင်းမှာ အိတ်ကပ်မှ ဒေတာများကို မည်သည့်သော့ချက်ဖြင့် ထုတ်ယူရမည်ကို ကျွန်ုပ်တို့ အတိအကျ မသိပါ။
<?php
$year = $res[1]; // 1 သို့မဟုတ် 2 သော့ချက် လိုအပ်သည်
?>
အခြေအနေတစ်ခုဖြင့် ပြဿနာကို ဖြေရှင်းနိုင်သည်။
<?php
if (!empty($res[1])){
$year = $res[1];
} else{
$year = $res[2];
}
?>
သို့သော်၊ ပိုမိုလွယ်ကူသော ဖြေရှင်းနည်းတစ်ခု ရှိပါသည်။
အထူးညွှန်ကြားချက် (?| ) ကို အသုံးပြုနိုင်ပါသည်။
၎င်းအတွင်းရှိ အိတ်ကပ်အားလုံးတွင် တစ်ခုတည်းသော နံပါတ်ရှိမည်။
ကျွန်ုပ်တို့၏ ရီဂျူလာ ဖော်မြူလာကို ပြင်ဆင်ကြပါစို့။
<?php
$reg = '#(?|19(9\d)|20(\d\d))#';
?>
ယခု ကျွန်ုပ်တို့၏ နှစ်သည် ဧကန်မုချ နံပါတ်တစ်ရှိသော အိတ်ကပ်ထဲတွင် ရှိမည်။
<?php
$year = $res[1];
?>
နှစ်များကို 1990 မှ 2099 အထိ ပြောင်းလဲနိုင်သည့်
ရက်စွဲများပါသော စာတန်းများ ပေးထားသည်။
<?php
$arr = [
'31-12-2025',
'30-11-1995',
'29-10-1990',
];
?>
ရက်စွဲတစ်ခုစီအတွက် ရက်ကို ပထမအိတ်ကပ်၊ လကို ဒုတိယအိတ်ကပ်၊ နှစ်၏ နောက်ဆုံးဂဏန်းနှစ်လုံးကို တတိယအိတ်ကပ်ထဲသို့ ထည့်ပါ။