<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤဆောင်းပါးသည်မည်သို့အသုံးပြုရမည်ကိုရှင်းပြသည်PHPအိမ်တွင်းpreg_matchထုတ်ယူရန်လုပ်ဆောင်ချက်များကိုHTML源码အိမ်တွင်း特定标签ကေြနပ်သော。</span></span><span>
</span><span><span class="hljs-comment">// preg_match၎င်းသည်အစွမ်းထက်ပုံမှန်စကားရပ်ကိုက်ညီမှုကိရိယာတစ်ခုဖြစ်သည်,ရိုးရှင်းသောပုံစံကိုက်ညီဘို့သင့်လျော်သော。</span></span><span>
</span><span><span class="hljs-comment">// မည်မှျပင်,ရှုပ်ထွေးသည်HTMLဆောက်လုပ်ပုံ,အသုံးပြုရန်အကြံပြုသည်DOMDocumentပိုပြီးတည်ငြိမ်သောနည်းလမ်းများ。</span></span><span>
</span><span><span class="hljs-comment">// ဤဆောင်းပါးသည်သင်ယူမှုရည်ရွယ်ချက်များအတွက်ဖြစ်လိမ့်မည်,တင်ပြpreg_matchတည်နေ提取标签အိမ်တွင်း基本用法。</span></span><span>
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>အဲဒါကိုဘယ်လိုသုံးရမလဲpreg_matchထံမှ function ကိုHTMLSource Code မှတိကျသော tag အကြောင်းအရာများကိုထုတ်ယူပါ?အသေးစိတ်စစ်ဆင်ရေးခြေလှမ်းများကဘာတွေလဲ?</h1>
တည်နေWebဖွံ့ဖြိုးမှုအောက်မှာ,ကျနော်တို့မကြာခဏဖို့လိုအပ်ပါတယ်HTMLအချို့သောတိကျသော tag အကြောင်းအရာများကိုအရင်းအမြစ်ကုဒ်မှထုတ်ယူပါ,比如提取页面အိမ်တွင်း标题、image address သို့မဟုတ်စာပိုဒ်စာသားကိုစာသား。ခွဲခြမ်းစိတ်ဖြာပေမယ့်HTMLအကြံပြုအသုံးပြုမှုDOMparser နှင့်အခြားကိရိယာများ,但တည်နေတစ်些简单的场景中,အသုံးပြု`preg_match`လုပ်ဆောင်ချက်များသည်အလုပ်များကိုလျင်မြန်စွာပြီးမြောက်နိုင်သည်。本文将详细讲解如何အသုံးပြု`preg_match`မှHTMLSource Code မှသတ်မှတ်ထားသော tag ၏အကြောင်းအရာကိုထုတ်ယူပါ。
</span><span><span class="hljs-comment">## တစ်、သင်ကြားpreg_matchလုပ်ဆောင်ချက်များ၏အခြေခံအသုံးပြုမှု</span></span><span>
`preg_match`ဟုတ်ကဲ့PHPပုံမှန်စကားရပ်ကိုက်ညီမှုလုပ်ဆောင်ရန်အသုံးပြုသောလုပ်ဆောင်ချက်များကို,အခြေခံ syntax အောက်ပါအတိုင်းဖြစ်သည်:
```php
</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$pattern</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$subject</span></span><span> , </span><span><span class="hljs-keyword">array</span></span><span> &</span><span><span class="hljs-variable">$matches</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span> )
</span></span>$ ပုံစံ - ပုံမှန်စကားရပ်
$ အကြောင်းအရာ - ရှာဖွေရန် string (i.e. html source code)
$ ကိုက်ညီမှု - အကယ်. ပွဲကိုအောင်မြင်စွာအောင်မြင်ပါကကိုက်ညီသောရလဒ်ခင်းကျင်းမှုကိုပြန်ပေးလိမ့်မည်
Return Value သည် 1 ကို အောင်မြင်စွာယှဉ်ပြိုင်နိုင်ပြီးမတိုက်ဆိုင်မှုနှင့်ကိုက်ညီရန် 0 ဖြစ်သည် ။
<title> tag မှအကြောင်းအရာကိုမည်သို့ထုတ်ယူရမည်ကိုပြသည့်ရိုးရှင်းသောဥပမာတစ်ခုမှာ -
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'<html><head><title>这ဟုတ်ကဲ့网页标题</title></head><body>ကေြနပ်သော</body></html>'</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/<title>(.*?)<\/title>/i'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-variable">$matches</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း:这ဟုတ်ကဲ့网页标题</span></span><span>
</span></span><title> နှင့် </ title> : အစနှင့်အဆုံး tags များနှင့်ကိုက်ညီသည်
(။ *?) - လောဘမရှိတဲ့ပုံစံနဲ့လိုက်ဖက်တဲ့အလယ်မှာပါ 0 င်တဲ့အကြောင်းအရာ
/ i : အမှုကိုလျစ်လျူရှုပါ
Preg_match သည် ပထမဆုံး ကိုက်ညီသောအကြောင်းအရာနှင့်သာကိုက်ညီနိုင်သည်။ အကယ်. သင်သည်တူညီသောအမှတ်အသားများမျိုးစုံနှင့်ကိုက်ညီလိုပါက <p> အပိုဒ်များကဲ့သို့သော preg_match_all function ကိုသုံးရန်လိုအပ်သည်။
ဥပမာ -
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'<p>第တစ်段</p><p>အပိုဒ် 2</p>'</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">'/<p>(.*?)<\/p>/i'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">preg_match_all</span></span><span>(</span><span><span class="hljs-variable">$pattern</span></span><span>, </span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-variable">$matches</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$matches</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>]); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း:Array ( [0] => 第တစ်段 [1] => အပိုဒ် 2 )</span></span><span>
</span></span>HTML အသိုက်ပြ problem နာ - ပုံမှန်အသုံးအနှုန်းများသည် niv> <div> <span ရှိအကြောင်းအရာများအတွင်းရှိ div ၏အကြောင်းအရာများကိုထုတ်ယူခြင်းကဲ့သို့ပုံမှန်အသုံးအနှုန်းများကိုမှန်ကန်စွာမခွဲနိုင်ပါ။
လုံခြုံရေး - သုံးစွဲသူများမှထည့်သွင်းထားသော HTML ကိုပြုပြင်သည့်အခါ XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်လုံခြုံရေးပြုပြင်ထုတ်လုပ်မှုကိုသေချာအောင်လုပ်ပါ။
စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများ - ပုံမှန်အားဖြင့်ခွဲခြမ်းစိတ်ဖြာမှုစွမ်းဆောင်ရည်သည်အကြီးစား HTML စာရွက်စာတမ်းများနည်းပါးသည် ။
preg_match နှင့် HTML tag အကြောင်းအရာများကိုဖြည်ချခြင်းသည်ရိုးရှင်းသော HTML ဖွဲ့စည်းတည်ဆောက်ပုံများကိုကိုင်တွယ်ရန်အလွန်ကောင်းမွန်သည်။ ပုံသေပါဝင်သောအကြောင်းအရာများနှင့်ကောင်းမွန်စွာပုံစံချထားသောအကြောင်းအရာများနှင့်အတူကိုင်တွယ်သောအခါ၎င်းသည်အလုပ်များကိုလျင်မြန်စွာနှင့်ထိရောက်စွာဖြည့်ဆည်းပေးနိုင်သည်။ သို့သော်ရှုပ်ထွေးသော (သို့) အသိုက် (HTML ဖွဲ့စည်းတည်ဆောက်ပုံများနှင့်ရင်ဆိုင်ရသောအခါပရော်ဖက်ရှင်နယ်ခွဲခြမ်းစိတ်ဖြာနည်းများကိုထည့်သွင်းစဉ်းစားသင့်သည်။ Mastering Preg_match သည် သင်၏ပုံမှန်စကားရပ်စွမ်းရည်ကိုတိုးတက်စေရုံသာမကတိကျသောအခြေအနေများတွင်အလွယ်တကူပြုလုပ်နိုင်သည်။
<span></span>
သက်ဆိုင်သောတက်(ဂ်)များ:
HTML