PHP တွင် ရေဂူလာ စကားရပ်များအတွင်း အထူးစာလုံးများ Escape လုပ်ခြင်း
အထူးစာလုံးတစ်လုံးသည် ၎င်းကိုယ်တိုင် ကိုယ်စားပြုရန် လိုအပ်သည်ဟု ယူဆပါစို့။ ဤအတွက် ထိုစာလုံးကို backslash ဖြင့် escape လုပ်ရန်လိုအပ်သည်။ ဥပမာများဖြင့် ကြည့်ရှုကြပါစို့။
ဥပမာ
အောက်ပါဥပမာတွင် ရေဂူလာ၏ pattern သည် ဤကဲ့သို့ဖြစ်ရန် ရည်ရွယ်ခဲ့သည်- အက္ခရာ
'a', ထို့နောက် အပေါင်းလက္ခဏာ '+', ထို့နောက်
အက္ခရာ 'x'။ သို့သော် ကုဒ်ရေးသူသည်
'+' သင်္ကေတကို escape မလုပ်ထားသဖြင့်
တကယ့် ရှာဖွေရေး pattern သည် ဤကဲ့သို့ဖြစ်နေသည်-
အက္ခရာ 'a' တစ်ကြိမ် (သို့) ထို့ထက်ပိုပြီးနောက်
အက္ခရာ 'x':
<?php
$str = 'a+x ax aax aaax';
$res = preg_replace('#a+x#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းသွားမည်:
'a+x ! ! !'
ဥပမာ
ယခုတစ်ခါ ရေးသူသည် backslash ဖြင့် အပေါင်းလက္ခဏာကို escape လုပ်ထားသည်။
ယခုအခါ ရှာဖွေရေး pattern သည် လိုအပ်သလို ဖြစ်နေပြီ- အက္ခရာ 'a', ထို့နောက် အပေါင်းလက္ခဏာ
'+', ထို့နောက် အက္ခရာ 'x'။
<?php
$str = 'a+x ax aax aaax';
$res = preg_replace('#a\+x#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းသွားမည်:
'! ax aax aaax'
ဥပမာ
ဤဥပမာတွင် pattern သည် ဤကဲ့သို့ဖြစ်နေသည်- အက္ခရာ
'a', ထို့နောက် ပုဒ်ဖြတ်သင်္ကေတ '.', ထို့နောက်
အက္ခရာ 'x':
<?php
$str = 'a.x abx azx';
$res = preg_replace('#a\.x#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းသွားမည်:
'! abx azx'
ဥပမာ
အောက်ပါဥပမာတွင် ရေးသူသည် ပုဒ်ဖြတ်သင်္ကေတကို escape လုပ်ရန် မေ့သွားပြီး �ေဂူလာအောက်သို့ စာကြောင်းခွဲအားလုံး ကျရောက်သွားသည်၊ အဘယ်ကြောင့်ဆိုသော် escape မလုပ်ထားသော ပုဒ်ဖြတ်သင်္ကေတသည် မည်သည့်စာလုံးကိုမဆို ကိုယ်စားပြုသောကြောင့်ဖြစ်သည်:
<?php
$str = 'a.x abx azx';
$res = preg_replace('#a.x#', '!', $str);
?>
ရလဒ်အနေဖြင့် variable အတွင်းသို့ အောက်ပါအတိုင်း ရေးသွင်းသွားမည်:
'! ! !'
ဥပမာ
သတိပြုရန် - ပုဒ်ဖြတ်သင်္ကေတအတွက် backslash ကို မေ့သွားပါက (၎င်းသည် ၎င်းကိုယ်တိုင် ကိုယ်စားပြုရမည့်အချိန်) - ၎င်းကို သတိမထားမိနိုင်ပါ:
<?php
preg_replace('#a.x#', '!', 'a.x'); // '!' ကို ပြန်ပေးမည်၊ ကျွန်ုပ်တို့ မျှော်လင့်ထားသည့်အတိုင်း
?>
မျက်မြင်အားဖြင့် မှန်ကန်စွာ အလုပ်လုပ်နေသည် (အဘယ်ကြောင့်ဆိုသော် ပုဒ်ဖြတ်သင်္ကေတသည်
မည်သည့်စာလုံးကိုမဆို ကိုယ်စားပြုသောကြောင့် ပုံမှန် ပုဒ်ဖြတ်သင်္ကေတ '.' ကိုပါ အပါအဝင်ဖြစ်သည်)။
သို့သော် အစားထိုးခြင်းဖြစ်ပွားသော စာကြောင်းကို ပြောင်းလဲလိုက်ပါက ကျွန်ုပ်တို့၏ အမှားကို
မြင်တွေ့ရမည်:
<?php
preg_replace('#a.x#', '!', 'a.x abx azx'); // '! ! !' ကို ပြန်ပေးမည်၊ မျှော်လင့်ထားသည်မှာ '! abx azx'
?>