<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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖတ်ရှုဖို့ကြိုဆိုပါတယ်PHPသင်သင်ခန်းရာ!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n--------------------------------------------------\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
ဘယ်လိုသုံးရမလဲpreg_matchအတည်ပြုရန်လုပ်ဆောင်ချက်များကိုIPစကားပေြာဟော,ပုံစံမှန်ကန်သောနှင့်ထိရောက်သောဖြစ်ကြောင်းသေချာပါစေ?
တည်နေPHPအလယ်ပိုင်း,`preg_match`လုပ်ဆောင်ချက်များကိုပုံမှန်စကားရပ်ကိုက်ညီမှုအတွက်အလွန်အစွမ်းထက်တဲ့ကိရိယာတခုဖြစ်တယ်。အသုံးပြုသူ input ကိုအတည်ပြုရန်လိုအပ်သည့်အခါIPစကားပေြာဟော是否格式正确时,`preg_match`ဒီအလုပ်ကိုမြန်မြန်ဆန်ဆန်ပြီးစီးနိုင်ပါတယ်。本文将详细讲解ဘယ်လိုသုံးရမလဲ它验证IPv4နှင့်IPv6စကားပေြာဟော。
</span><span><span class="hljs-comment">### 1. IPv4စကားပေြာဟော验证</span></span><span>
IPv4စကားပေြာဟော由四段数字组成,တစ်ခုချင်းစီကိုအရေအတွက်၏အကွာအဝေးဖြစ်ပါတယ်</span><span><span class="hljs-number">0</span></span><span>ရောက်လာ</span><span><span class="hljs-number">255</span></span><span>,အလယ်ပိုင်း间用点号分隔,ဥပမာအားဖြင့်:</span><span><span class="hljs-number">192.168</span></span><span>.</span><span><span class="hljs-number">0.1</span></span><span>。为了确保格式နှင့်有效性,ကျနော်တို့အောက်ပါပုံမှန်စကားရပ်ကိုသုံးနိုင်သည်:
```php
</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span> = </span><span><span class="hljs-string">"/^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"192.168.1.100"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv4_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4စကားပေြာဟော格式正确"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv4စကားပေြာဟော格式不正确"</span></span><span>;
}
</span></span>
ရှင်းပြပါ:
25 [0-5] ပွဲစဉ် 250-255
2 [0-4] [0-9] [0-9] ပွဲ 200-249
1 [0-9] {2} 100-199
[1-9]? [0-9] ပွဲစဉ် 0-99 ပွဲစဉ်
((... ) \ ။ ) {3} ... ကိန်းဂဏန်းလေးခုရှိကြောင်းသေချာအောင်လုပ်ပါ။ အလယ်တွင်အစက်များဖြင့်ခွဲထားသည်
IPv6 လိပ်စာပုံစံသည်ပိုမိုရှုပ်ထွေးသည်, hexadecimalum နံပါတ် 8 စုံပါဝင်သည်။ ရိုးရှင်းသောပုံမှန်ဖော်ပြချက်ဥပမာတစ်ခုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-variable">$ipv6_pattern</span></span><span> = </span><span><span class="hljs-string">"/^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/"</span></span><span>;
</span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-string">"2001:0db8:85a3:0000:0000:8a2e:0370:7334"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-variable">$ipv6_pattern</span></span><span>, </span><span><span class="hljs-variable">$ip</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6စကားပေြာဟော格式正确"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPv6စကားပေြာဟော格式不正确"</span></span><span>;
}
</span></span>
IPv4 နှင့် IPv6 နှစ်ခုလုံးကိုသင်အတည်ပြုလိုပါက IP စိစစ်အတည်ပြုလုပ်ဆောင်ချက်ပါ 0 င်သည့် filter_var function ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">filter_var</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>, FILTER_VALIDATE_IP)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPစကားပေြာဟော有效"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"IPစကားပေြာဟော无效"</span></span><span>;
}
</span></span>
အသုံးပြုသူ input ကိုပြုပြင်သည့်အခါယခင်နှင့်နောက်ဆက်တွဲနေရာများကြောင့်မကျေပွန်ရန်နေရာများနှင့်မမှန်ကန်တဲ့စာလုံးများကိုဖယ်ရှားရန်အမြဲတမ်းဂရုပြုပါ။
<span><span><span class="hljs-variable">$ip</span></span><span> = </span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$ip</span></span><span>);
</span></span>
အိုင်ပီလိပ်စာအမြောက်အမြားကိုအသုတ်စစ်ဆေးမှုအတွက်, ထည့်သွင်းမှုတစ်ခုချင်းစီကိုထိထိရောက်ရောက်စစ်ဆေးရန်ကွင်းဆက်များနှင့် preg_match များကို ထိထိရောက်ရောက်စစ်ဆေးရန်။
Preg_match ကိုအသုံးပြုပြီးပုံမှန်ပုံမှန်အသုံးအနှုန်းများနှင့်ပေါင်းစပ်ပြီး IP address format သည်မှန်ကန်ပြီးမှန်ကန်ကြောင်းစစ်ဆေးနိုင်သည်။ IPv4 အတွက်တော့နံပါတ်နှင့်အစိတ်အပိုင်းနံပါတ်တွင်အာရုံစိုက်သည်။ IPv6 အတွက် Hexadecimal Group နှင့်အူမကြီးခွဲနေခြင်းတွင်အဓိကထားသည်။ ဤကျွမ်းကျင်မှုများကျွမ်းကျင်မှုသည်ကွန်ယက်လိပ်စာများကိုကိုင်တွယ်ရာတွင်သင်၏ PHP ပရိုဂရမ်ကိုပိုမိုလုံခြုံမှုရှိစေနိုင်သည်။
<span></span>