လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> preg_replace_callback_array အတွက်ပုံမှန်အတိုင်းဖော်ပြသောအမှားအယွင်းများဘာတွေလုပ်နေလဲ။ ဒီထောင်ချောက်ကိုရှောင်ကြဉ်ပါ

preg_replace_callback_array အတွက်ပုံမှန်အတိုင်းဖော်ပြသောအမှားအယွင်းများဘာတွေလုပ်နေလဲ။ ဒီထောင်ချောက်ကိုရှောင်ကြဉ်ပါ

gitbox 2025-09-04

<span><span><span class="hljs-meta"><?php</span></span><span> </span><span><span class="hljs-comment">// 这部分内容与文章正文无关,可以是任意PHP代码示例</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Hello, this is a dummy function."</span></span><span>; } </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>(); </span><span><span class="hljs-meta">?></span></span><span> <hr> <preg_replace_callback_array中常见的正则表达式写法错误有哪些?避免这些坑></p> <p>在PHP中,<code>preg_replace_callback_array

ပုံမှန်စကားရပ်မှခွဲထုတ်သူတစ် ဦး ထည့်သွင်းရန်နှင့် Separator မတိုင်မီနှင့်ပြီးနောက်နှင့်ကိုက်ညီပါ။

2 ။ ဇာတ်ကောင်ဇာတ်ကောင်အသုံးပြုမှုအတွက်အမှား

ပုံမှန်အသုံးအနှုန်းများအတွက်အထူးဇာတ်ကောင်များစွာကိုလွတ်မြောက်ရန်လိုအပ်သည်။ အထူးသဖြင့် PHP strings တွင်ပုံမှန်ရေးသားသည့်အခါ backslash ကိုယ်တိုင်လည်းလွတ်မြောက်ရန်လိုအပ်သည်။ ၎င်းသည်လွတ်မြောက်မှုအမှားတစ်ခုဖြစ်စေသည်။

 
</span><span><span class="hljs-variable">$patterns</span></span><span> = [
    </span><span><span class="hljs-string">'/\\d+/'</span></span><span> => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; }, </span><span><span class="hljs-comment">// မှန်ကန်သော,PHPstring ကို၌တည်၏\\တစ်ခုတည်းကိုကိုယ်စားပြုတယ်\</span></span><span>
    </span><span><span class="hljs-string">'/\d+/'</span></span><span>  => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; }, </span><span><span class="hljs-comment">// မှန်ကန်သော,单引号string ကို၌တည်၏\တိုက်ရိုက်ထိရောက်သော</span></span><span>
    </span><span><span class="hljs-string">"/\d+/"</span></span><span>  => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; }, </span><span><span class="hljs-comment">// မှန်ကန်သော,双引号string ကို၌တည်၏\dဖော်ထုတ်နိုင်ပါသည်</span></span><span>
    </span><span><span class="hljs-string">"/\d+/"</span></span><span>  => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; }, </span><span><span class="hljs-comment">// ဘုံအမှားအယွင်းများအဖြစ်ရေးသားခဲ့သည် "/\\d+/" ကိုက်ညီမှုပျက်ကွက်မှုဖြစ်ပေါ်စေသည်</span></span><span>
];

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

3 ။ uncieds နှင့်အမည်ရှိအုပ်စုများကိုအသုံးပြုခြင်းနှင့်ပတ်သက်။ မှားယွင်းသောအယူအဆများ

developer အတော်များများသည်အဖွဲ့များနှင့်ကိုက်ညီမှုရှိသည့်အခါသို့မဟုတ်အသုံးပြုသောအုပ်စုများကိုအများအားဖြင့်လျှော့ချလိုသည်။

 
</span><span><span class="hljs-comment">// unatedured အုပ်စုဖွဲ့</span></span><span>
</span><span><span class="hljs-string">'/foo(?:bar)/'</span></span><span>   </span><span><span class="hljs-comment">// မှန်ကန်သော,(?:)unatatured အုပ်စုဖွဲ့အုပ်စုကိုညွှန်ပြ</span></span><span>
</span><span><span class="hljs-string">'/foo(bar)/'</span></span><span>     </span><span><span class="hljs-comment">// အုပ်စုလိုက်ဖမ်းယူ</span></span><span>

</span><span><span class="hljs-comment">// အမည်အုပ်စု,မှန်ကန်သော写法:</span></span><span>
</span><span><span class="hljs-string">'/foo(?P<name>bar)/'</span></span><span>

</span><span><span class="hljs-comment">// အရေးအသားမှား:</span></span><span>
</span><span><span class="hljs-string">'/foo(?<name>bar)/'</span></span><span>  </span><span><span class="hljs-comment">// အချို့ပေမယ့်PHPဗားရှင်းအထောက်အပံ့,ဒါပေမယ့်မPCREစံဖြစ်သော,ဖြစ်နိုင်သမျှလိုက်ဖက်တဲ့</span></span><span>

ရှောင်ရှားခြင်းနည်းလမ်း - စံသတ်မှတ်ထားသည့်အုပ်စုစု syntax (? P) ကိုအသုံးပြုရန်အကြံပြုသည်။ ... ) , လိုက်ဖက်တဲ့ပြ issues နာများကိုရှောင်ကြဉ်ပါ။

4 ။ ပုံမှန်စကားရပ် syntax အမှား

ရှုပ်ထွေးသောစည်းမျဉ်းစည်းကမ်းများကိုရေး သောအခါ ,

 
</span><span><span class="hljs-variable">$patterns</span></span><span> = [
    </span><span><span class="hljs-string">'/(foo(bar/'</span></span><span> => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; }, </span><span><span class="hljs-comment">// bracket မတိုက်ဆိုင်,အမှားတစ်ခုသတင်းပို့ပါ</span></span><span>
    </span><span><span class="hljs-string">'/foo+/'</span></span><span>     => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) { </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>]; }, </span><span><span class="hljs-comment">// quantifiers ၏မမှန်ကန်ကြောင်းအသုံးပြုမှု,+ လျှောက်ထားခဲ့သည် foo စိတ်မကောင်းစရာဝေဝါးအဓိပ္ပာယ်ကိုဖြစ်ပေါ်စေသည်</span></span><span>
];

ရှောင်ကြဉ်ပါ။ မှန်ကန်သော syntax ကိုသေချာစေရန်ပုံမှန်အသုံးအနှုန်းများကိုစစ်ဆေးရန် IDE သို့မဟုတ်အွန်လိုင်းကိရိယာများကိုသုံးပါ။

5 ။ ပုံမှန်စကားရပ်သည် callback function ကိုမကိုက်ညီပါ

Relback function ၏မျှော်လင့်ထားသည့်ကိုက်ညီမှုရလဒ်သည်ပုံမှန်စကားရပ်အဓိပ္ပါယ်ဖွင့်ဆိုချက်နှင့်ကိုက်ညီမှုမရှိပါ။

 
</span><span><span class="hljs-variable">$patterns</span></span><span> = [
    </span><span><span class="hljs-string">'/(foo)(bar)/'</span></span><span> => </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$matches</span></span></span><span>) {
        </span><span><span class="hljs-comment">// $matches[1] ဟုတ်ကဲ့ foo, $matches[2] ဟုတ်ကဲ့ bar</span></span><span>
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>]; </span><span><span class="hljs-comment">// Non- မရှိသည့်အညွှန်းကိန်း,အမှားတစ်ခုသတင်းပို့ပါ</span></span><span>
    }
];

ရှောင်ကြဉ်ပါ။

6 ။ ပုံမှန်အသုံးအနှုန်းကိုလျစ်လျူရှုပါ

ဥပမာအားဖြင့်, အမှု, တစ်ခုတည်းလိုင်း mode, လိုင်း multi-line mode စသဖြင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ်ခြင်းသည်မျှော်လင့်ချက်များနှင့်ကိုက်ညီခြင်းမဟုတ်ပါ။

 
</span><span><span class="hljs-string">'/pattern/i'</span></span><span>  </span><span><span class="hljs-comment">// i အမှုအားလျစ်လျူရှုကြောင်းဖော်ပြသည်</span></span><span>
</span><span><span class="hljs-string">'/pattern/s'</span></span><span>  </span><span><span class="hljs-comment">// s ညှစ် . မဲဆန္ဒနယ်များကိုက်ညီ</span></span><span>

</span><span><span class="hljs-comment">// 忘记加修饰符ကိုက်ညီမှုပျက်ကွက်မှုဖြစ်ပေါ်စေသည်</span></span><span>
</span><span><span class="hljs-string">'/pattern/'</span></span><span>   </span><span><span class="hljs-comment">// စာလုံးအကြီးအသေးသတိထားရမည်</span></span><span>

ရှောင်ကြဉ်ပါ။ သင်၏လိုအပ်ချက်များနှင့်အညီပြုပြင်မွမ်းမံချက်များကိုထည့်ပါ။

အကျဉ်းချုပ်

preg_replace_callback_array ကို အသုံးပြုသည့်အခါကြိုးများပြုလုပ်ရန်အတွက်ပုံမှန်အသုံးအနှုန်းကိုမှန်ကန်စွာရေးသားရန်အလွန်အရေးကြီးသည်။ ပျောက်ဆုံးနေသောအမှားများ, အမှားအယွင်းများ, ပုံမှန်မဟုတ်သောအုပ်စုများ, မမှန်မကန်အုပ်စုများ, syntax အမှားများ, callback parameter များအမှားများ, ပုံနှိပ်ခြင်းမပြုမီပုံမှန်အသုံးအနှုန်းများကိုသီးခြားစမ်းသပ်ခြင်းအလေ့အထကိုရေးဆွဲခြင်းသည်အုပ်စုဖွဲ့ခြင်းနှင့်ကိုက်ညီသောရလဒ်များကိုစစ်ဆေးရန် debugging tools များကို အသုံးပြု. ဤအန္တရာယ်များကိုအားဖြည့်ခြင်းများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။

ဤဆောင်းပါးသည် Preg_replace_callback_array ကို အသုံးပြုသောအခါပုံမှန်အတိုင်းပုံမှန်စကားရပ်ရေးရာအမှားများကိုရှောင်ရှားရန်နှင့်ပိုမိုယုံကြည်စိတ်ချရသောနှင့် effectable php code ကိုရေးရန်သင်ရှောင်ရှားရန်ကူညီပေးပါ။