PHP Development တွင် (HTML tags, json တည်ဆောက်ပုံများစသည်) နှင့်ကိုက်ညီခြင်းနှင့်ကိုင်တွယ်ခြင်းပြ problems နာများကိုကိုင်တွယ်ဖြေရှင်းခြင်းနှင့်ကိုင်တွယ်ခြင်းကြုံတွေ့ရလေ့ရှိသည်။ ပုံမှန်အသုံးအနှုန်းများနှင့်ကိုက်ညီရန်ပုံမှန်အသုံးအနှုန်းများကိုတိုက်ရိုက်အသုံးပြုရန်မလွယ်ကူပါ, သို့သော် callback လုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဤအသိုက်တည်ဆောက်ပုံများကိုထိရောက်စွာကိုင်တွယ်နိုင်သည်။ ဤဆောင်းပါးသည် PHP တွင်ထိရောက်သောအသိုက်ဖွဲ့စည်းပုံကိုရရှိရန်ပုံမှန်အသုံးအနှုန်းများနှင့် callback function များကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာလိမ့်မည်။
callback function တစ်ခုသည် function တစ်ခုကို parameter တစ်ခုအဖြစ်အခြား function တစ်ခုသို့ parameter တစ်ခုအဖြစ်ဖြတ်သန်းရန်နှင့်လိုအပ်သည့်အခါ function ကိုခေါ်ပါ။ PHP တွင် callback function များကိုပုံမှန်အသုံးအနှုန်းများဖြင့်မကြာခဏအသုံးပြုသည်။ ပုံမှန်ဖော်ပြမှုနှင့်ကိုက်ညီပြီးပါကလိုက်ဖက်သောရလဒ်ကို callback function ကို အသုံးပြု. လုပ်ဆောင်သည်။
ပုံမှန်အသုံးအနှုန်းများ (regex) သည်ကြိုးနှင့်ကိုက်ညီသောပုံစံများအတွက်ကိရိယာတစ်ခုဖြစ်သည်။ PHP သည်ပုံမှန်အသုံးအနှုန်းများအသုံးပြုခြင်းကိုထောက်ပံ့ရန်အတွက်လုပ်ဆောင်ချက်အမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ Preg_match () , Preg_replace () နှင့် Preg_Match_all () နှင့် preg_match_all () ကိုပုံမှန်ပုံမှန်လုပ်ဆောင်မှုများကိုအသုံးပြုကြသည်။
ဥပမာအားဖြင့်ကျွန်ုပ်တို့တွင် HTML string တစ်ခုရှိပြီးလင့်ခ်များအားလုံးကိုထုတ်ယူလိုပါက ( <a> tag ၏ href attribute) ။ အောက်ပါပုံမှန်ဖော်ပြချက်ကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
$html = '<a href="http://m66.net/page1">Page 1</a><a href="http://m66.net/page2">Page 2</a>';
$pattern = '/<a href="([^"]+)">/';
preg_match_all($pattern, $html, $matches);
print_r($matches);
အထက်ပါကုဒ်သည် <a> tags အားလုံး၏ href attribute များကိုထုတ်ပေးလိမ့်မည်။
အသိုက်ဖွဲ့စည်းပုံကိုက်ညီမှုအတွက်ပုံမှန်အသုံးအနှုန်းကိုကိုယ်တိုင်ကိုယ်ကျကိုင်တွယ်နိုင်မည်မဟုတ်ပါ။ Callback လုပ်ဆောင်ချက်များကိုအသုံးပြုခြင်းအားဖြင့်ကိုက်ညီသောရလဒ်များကိုလုပ်ဆောင်နိုင်စွမ်းစွမ်းအားကိုမြှင့်တင်နိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အသိုက် hTML ဖွဲ့စည်းပုံကိုကိုင်တွယ်ဖြေရှင်းနေသည်ဆိုပါစို့။ Tags ကို၎င်းတွင် tags များကိုခွဲခြမ်းစိတ်ဖြာနိုင်ပြီး tag တစ်ခုစီကိုအထူးကိုင်တွယ်နိုင်သည်။
ကျွန်ုပ်တို့သည် callback function တွင်ကိုက်ညီသောအကြောင်းအရာများကိုအစားထိုးသည့်အခါ callback function ကိုခေါ်ရန်ခွင့်ပြုသည့် preg_replace_callback () function ကိုသုံးနိုင်သည်။
$html = '<div><a href="http://m66.net/page1">Page 1</a></div><div><a href="http://m66.net/page2">Page 2</a></div>';
$pattern = '/<a href="([^"]+)">(.*?)<\/a>/';
$html = preg_replace_callback($pattern, function($matches) {
// ဒီမှာ$matches[1]ဒါဟာ link လိပ်စာပါ,$matches[2]ဒါက link ကိုစာသားပါ
$url = $matches[1];
$text = $matches[2];
// link ကိုပြုပြင်မွမ်းမံ
$new_url = str_replace('http://m66.net', 'https://m66.net', $url);
// ပြုပြင်မွမ်းမံရန်ပြန်သွားပါHTML
return '<a href="' . $new_url . '">' . $text . '</a>';
}, $html);
echo $html;
အထက်ပါကုဒ်တွင် <a> tag နှင့်ကိုက်ညီရန် Preg_replace_callback () function ကိုအသုံးပြုသည်။ callback function သည်ပုံမှန်စကားရပ်၏ကိုက်ညီမှုနှင့်လိုအပ်သည့်အတိုင်းချိတ်ဆက်ထားသော href တစ်ခုစီကိုလိုအပ်သလိုပြုပြင်သည် (ဥပမာ URL protocol ကိုပြုပြင်မွမ်းမံခြင်း) ကိုပြုပြင်သည်။
output ရလဒ်ဖြစ်လိမ့်မည်:
<div><a href="https://m66.net/page1">Page 1</a></div>
<div><a href="https://m66.net/page2">Page 2</a></div>
ပိုမိုရှုပ်ထွေးသောအသိုက်တည်ဆောက်ပုံများနှင့်ဆက်ဆံရာတွင်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုခြင်းသည်ပရိယာယ်ဖြစ်လာသည်။ ဤအချိန်တွင်ကျွန်ုပ်တို့သည် callback function ကိုပြန်လည်လက်ခံခြင်းအားဖြင့်အသိုက်အဆင့်ဆင့်ကိုကိုင်တွယ်နိုင်သည်။ ဥပမာအားဖြင့်, ကျွန်ုပ်တို့တွင် <a> tag တစ်ခုစီတွင်လုပ်ဆောင်ရန်လိုအပ်သည့်အသိုက် html ဖွဲ့စည်းပုံရှိသည်ဆိုပါစို့။
$html = '<div><a href="http://m66.net/page1"><div><a href="http://m66.net/page2">Page 2</a></div>Page 1</a></div>';
$pattern = '/<a href="([^"]+)">(.*?)<\/a>/';
$html = preg_replace_callback($pattern, function($matches) {
// ဒီမှာ$matches[1]ဒါဟာ link လိပ်စာပါ,$matches[2]ဒါက link ကိုစာသားပါ
$url = $matches[1];
$text = $matches[2];
// link ကိုပြုပြင်မွမ်းမံ
$new_url = str_replace('http://m66.net', 'https://m66.net', $url);
// ပြုပြင်မွမ်းမံရန်ပြန်သွားပါHTML
return '<a href="' . $new_url . '">' . $text . '</a>';
}, $html);
echo $html;
ဤဥပမာတွင် <a> tag ကို <a tag ကို <div> tag မှာအသိုက်ထားရင်တောင်ချိတ်ဆက်မှုတစ်ခုစီကိုမှန်ကန်စွာကိုင်တွယ်နိုင်ပြီး href attribute ကိုပြုပြင်မွမ်းမံနိုင်သေးတယ်။
ပုံမှန်အသုံးအနှုန်းများနှင့် callback function များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် PHP ရှိအသိုက်တည်ဆောက်ပုံကိုထိရောက်စွာကိုင်တွယ်နိုင်သည်။ ပုံမှန်အသုံးအနှုန်းများသည်ဖမ်းဆီးခြင်းပုံစံများကိုသင့်လျော်သည်။ ပုံမှန်အသုံးအနှုန်းများသည်ပြန်လည်ထူထောင်ရေးနှင့်အသိုက်ဖွဲ့စည်းပုံများကိုကိုင်တွယ်ရာတွင်မ 0 င်သော်လည်း callback function များကိုပြောင်းလွယ်ပြင်လွယ်အသုံးချပရိုဂရမ်များသည်ရှုပ်ထွေးသောအဆောက်အအုံများကိုအကောင်အထည်ဖော်နိုင်သည်။