PHP တွင် Delimiters များအား Escaping လုပ်ခြင်း
သင်္ကေတတစ်ခုသည် အထူးသင်္ကေတမဟုတ်ပါက၊ သင်သည် ၎င်းကို delimiter အဖြစ်အသုံးပြုသည့်အခါ၊ regex အတွင်းတွင် ၎င်းကို escaping လုပ်ရန် လိုအပ်ပါမည်။ ဥပမာတစ်ခုဖြင့် ကြည့်ရှုပါမည်။
ကျွန်ုပ်တို့၏ delimiters များအဖြစ် hash သင်္ကေတများ (#) ကို အသုံးပြုပြီး၊ regex အတွင်းတွင် ampersand (&) သင်္ကေတကို ရှာဖွေသည်ဆိုပါစို့။ Ampersand သည် အထူးသင်္ကေတ (special character) မဟုတ်သောကြောင့်၊ ကျွန်ုပ်တို့သည် ၎င်းကို escaping မလုပ်ပါ။
<?php
echo preg_replace('#a&b#', '!', 'a&b'); // '!' ကို ထုတ်ပြမည်
?>
ယခု delimiters များသည် ampersands (&) များဖြစ်ပြီး regex အတွင်းတွင် ampersand တစ်ခုလည်း လိုအပ်သည်ဆိုပါစို့။ ထိုသို့သောအခြေအနေတွင် အတွင်းရှိ ampersand ကို escaping လုပ်ရန် လိုအပ်ပါသည်၊ သို့မဟုတ်ပါက ၎င်းသည် PHP အမှား (error) ကို ဖြစ်စေမည်။
<?php
echo preg_replace('&a\&b&', '!', 'a&b'); // '!' ကို ထုတ်ပြမည်
?>
အောက်ပါကုဒ်တွင် ကျူးလွန်ထားသော အမှားကို ပြင်ဆင်ပါ။
<?php
echo preg_replace('#a#b#', '!', 'a#b');
?>