strncmp function သည် php နှစ်ခုကြိုးနှင့်နှိုင်းယှဉ်ခြင်းအတွက် PHP မှပေးသော function တစ်ခုဖြစ်သည်။ StrcMP နှင့်မတူဘဲ strncmp သည် သတ်မှတ်ထားသောစာလုံးအရေအတွက်နှင့်နှိုင်းယှဉ်သည်။ ထို့ကြောင့်ပုံမှန် string နှိုင်းယှဉ်မှုများထက် ပို. တိကျမှန်ကန်ပြီးလုံခြုံသည်။ strncmp function ၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">strncmp</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span> , </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span> )
</span></span>
$ str1 : ပထမ string ကို။
$ str2 : ဒုတိယ string ကို။
$ အရှည် : နှိုင်းယှဉ်ရန်ဇာတ်ကောင်အများဆုံးအရေအတွက်။
ဒီ function ကကိန်းဂဏန်းတန်ဖိုးတစ်ခုပြန်ပို့ပေးပြီး stries နှစ်ခုရဲ့အရွယ်အစားနဲ့ညီမျှမှုအပေါ်အခြေခံပြီးအောက်ပါအခြေအနေတွေကိုပြန်ပို့လိုက်တယ်။
တစ် ဦး ကတစ် ဦး ပြန်လာတန်ဖိုး 0 နှစ်ခု strings နှစ်ခု strings နှစ်ခု tweing သတ်မှတ်ထားသောအရှည်အတွက်အတိအကျတူညီဖြစ်ကြောင်းဆိုလိုသည်။
Return Value သည် 0 ထက်လျော့နည်းသည် $ str1 သည် ဒေါ်လာ str2 ထက်နည်းသည်။
ပြန်လည်တန်ဖိုးသည် 0 ထက်ပိုမိုကောင်းမွန်သည်။ $ str1 သည် ဒေါ်လာ str2 ထက်ကြီးသည်။
PHP တွင်အများအားဖြင့်အသုံးပြုသော string နှိုင်းယှဉ်လုပ်ဆောင်ချက်များသည် strcmp နှင့် stricasecmp ဖြစ်သည်။ ဤလုပ်ဆောင်ချက်များသည် string တစ်ခုလုံးကိုအစမှအဆုံးအထိနှိုင်းယှဉ်သည်။ သို့သော်လုံခြုံရေးနှင့်သက်ဆိုင်သောလျှောက်လွှာများတွင်ဤလုပ်ဆောင်မှုများကိုအသုံးပြုခြင်းသည်အထူးသဖြင့်အချိန်တိုက်ခိုက်ခံရသည့်အခါအလားအလာရှိသောအန္တရာယ်များကိုတိုက်ရိုက်ဖြစ်စေနိုင်သည်။
အချိန်တိုက်ခိုက်မှုဆိုသည်မှာအချက်အလက်များကိုနှိုင်းယှဉ်ခြင်းလုပ်ငန်းများအတွက်အချိန်ကိုတိုင်းတာခြင်းအားဖြင့်အချက်အလက်အကြောင်းအရာများကိုတိုင်းတာခြင်းအားဖြင့်အချက်အလက်များကိုပြန်လည်စတင်သည့်တိုက်ခိုက်မှုတစ်ခုဖြစ်သည်။ တိုက်ခိုက်သူသည်ကွဲပြားသောကြိုးများကိုအဆက်မပြတ်ကြိုးစားခြင်းနှင့်နှိုင်းယှဉ်ခြင်းစစ်ဆင်ရေး၏အချိန်အပေါ် အခြေခံ. တဖြည်းဖြည်းချင်းတိုးပွားလာနိုင်သည်။
ဥပမာအားဖြင့် stricmp နှင့် stricasecmp လုပ်ဆောင်ချက်များကိုဇာတ်ကောင်နှစ်မျိုးနှင့်ဇာတ်ကောင်နှစ်မျိုးနှင့်နှိုင်းယှဉ်ခြင်းနှင့်ပထမမတိုက်ဆိုင်ဇာတ်ကောင်ကိုတွေ့သောအခါရလဒ်ကိုပြန်ဖွင့်သည်။ ဆိုလိုသည်မှာကြိုးနှစ်ချောင်း၏ပထမစာလုံးအနည်းငယ်သည်အတူတူပင်ဖြစ်ပါကလုပ်ဆောင်ချက်သည်နောက်ဆက်တွဲဇာတ်ကောင်များကိုနှိုင်းယှဉ်ရန်အချိန်ပိုယူလိမ့်မည်ဟုဆိုလိုသည်။ ထပ်ခါတလဲလဲစမ်းသပ်မှုများမှတစ်ဆင့်မှန်ကန်သောဇာတ်ကောင်အမိန့်ကိုရှာဖွေရန်တိုက်ခိုက်သူများသည်ဤအရာကိုအားသာချက်ယူနိုင်သည်။
strncmp function သည် developer များက stries များနှင့်နှိုင်းယှဉ်သောဇာတ်ကောင်အရေအတွက်ကိုကန့်သတ်ရန်ခွင့်ပြုသည်။ ဆိုလိုသည်မှာ strings နှစ်ခု၏ပထမဂဏန်းအနည်းငယ်ကိုတူညီသောဂဏန်းအနည်းငယ်သာရှိလျှင်ပင် strncmp သည် သတ်မှတ်ထားသောဇာတ်ကောင်အရှည်ကိုသာနှိုင်းယှဉ်နိုင်ပြီးအခြားဇာတ်ကောင်များကိုအချိန်နှင့်နှိုင်းယှဉ်ခြင်းအားဖြင့်မနှိုင်းယှဉ်ပါ။ strncmp function ကိုတိကျသောထိန်းချုပ်မှုနှင့်အတူပေါင်းစပ်ထားသောအချိန်တိုက်ခိုက်မှုများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။
လုံခြုံစိတ်ချရသော string နှိုင်းယှဉ်မှုကိုပြုလုပ်သောအခါ strncmp ကို အောက်ပါနည်းလမ်းများဖြင့်အသုံးပြုနိုင်သည်။
ပုံသေအရှည်ကြိုးနှစ်ချပ်ကိုနှိုင်းယှဉ်ဖို့လိုတဲ့အခါနှိုင်းယှဉ်ဖို့ဇာတ်ကောင်အရေအတွက်ကိုတိုက်ရိုက်သတ်မှတ်နိုင်ပါတယ်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် Hashes 2 ခုကိုနှိုင်းယှဉ်ရန်လိုအပ်ပါက -
<span><span><span class="hljs-variable">$hash1</span></span><span> = </span><span><span class="hljs-string">'d41d8cd98f00b204e9800998ecf8427e'</span></span><span>;
</span><span><span class="hljs-variable">$hash2</span></span><span> = </span><span><span class="hljs-string">'d41d8cd98f00b204e9800998ecf8427e'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strncmp</span></span><span>(</span><span><span class="hljs-variable">$hash1</span></span><span>, </span><span><span class="hljs-variable">$hash2</span></span><span>, </span><span><span class="hljs-number">32</span></span><span>) === </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'နှစ်ခု hashes အတူတူပင်ဖြစ်ကြသည်'</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">'ကွဲပြားခြားနားသော hash တန်ဖိုးများ'</span></span><span>;
}
</span></span>
ဤဥပမာတွင်စာလုံးရေ 32 လုံးသာနှင့်နှိုင်းယှဉ်လျှင် strncmp function ကိုအသုံးပြုသည်။ ထို့ကြောင့်အချိန်တိုက်ခိုက်မှုများကိုရှောင်ရှားနိုင်သည်။
အသုံးပြုသူမှထည့်သွင်းထားသောစကားဝှက်သို့မဟုတ်အခြားအထိခိုက်မခံသောအချက်အလက်များကိုကျွန်ုပ်တို့အတည်ပြုရန်လိုအပ်သည့်အခါကျွန်ုပ်တို့သည် strcmp ကို တိုက်ရိုက်အသုံးပြုခြင်းကိုရှောင်ရှားရန်ကြိုးစားသင့်သည်။ အသုံးပြုသူမှသိမ်းဆည်းခြင်းနှင့်သိမ်းဆည်းထားသောစကားဝှက် hash တန်ဖိုးကို strncmp နှင့်နှိုင်းယှဉ်နိုင်သည်။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$userInput</span></span><span> = </span><span><span class="hljs-string">'password123'</span></span><span>;
</span><span><span class="hljs-variable">$storedHash</span></span><span> = </span><span><span class="hljs-string">'$2y$10$4.2T70akfYlBpgk2JqJbVvDrzVX9pIHH9RbHg5bWlfu'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">strncmp</span></span><span>(</span><span><span class="hljs-variable">$userInput</span></span><span>, </span><span><span class="hljs-variable">$storedHash</span></span><span>, </span><span><span class="hljs-number">60</span></span><span>) === </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'စကားဝှက်ကိုအောင်မြင်စွာကိုက်ညီခြင်း'</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">'စကားဝှက်'</span></span><span>;
}
</span></span>
ဤဥပမာတွင်အသုံးပြုသူသည်စကားဝှက်တစ်ခုထဲသို့ 0 င်ရောက်ပြီး၎င်းကိုသိုလှောင်ထားသော hash value နှင့်နှိုင်းယှဉ်သည်။ အက်ခရာအရေအတွက်ကို 60 နှင့်နှိုင်းယှဉ်လျှင်လုံခြုံရေးကိုသေချာစေသည်။
strncmp သည် အချို့သောလုံခြုံရေးအတိုင်းအတာကိုထောက်ပံ့သော်လည်း Secure String နှိုင်းယှဉ်မှုများအတွက် PHP သည်ပိုမိုလုံခြုံသော ကြိုး နှင့်နှိုင်းယှဉ်ပါ။ Hash_equals သည်အထူးဒီဇိုင်းပြုလုပ်ထားသောအချိန်တိုက်ခိုက်မှုကိုရှောင်ရှားရန်အထူးဒီဇိုင်းပြုလုပ်ထားသည်။ ၎င်းသည် string အရှည်အရှည်သို့မဟုတ်အကြောင်းအရာဆင်တူခြင်းကြောင့်မထိခိုက်ပါ။ ထို့ကြောင့် Hash နှိုင်းယှဉ်မှုများအတွက်ပိုမိုကောင်းမွန်သောရွေးချယ်မှုဖြစ်သည်။ အသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-variable">$expected</span></span><span> = </span><span><span class="hljs-string">'d41d8cd98f00b204e9800998ecf8427e'</span></span><span>;
</span><span><span class="hljs-variable">$actual</span></span><span> = </span><span><span class="hljs-string">'d41d8cd98f00b204e9800998ecf8427e'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">hash_equals</span></span><span>(</span><span><span class="hljs-variable">$expected</span></span><span>, </span><span><span class="hljs-variable">$actual</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'အဆိုပါ hash တန်ဖိုးအတူတူပင်ဖြစ်ပါတယ်'</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">'ကွဲပြားခြားနားသော hash တန်ဖိုးများ'</span></span><span>;
}
</span></span>
Hash_equals သည် ပိုမိုမြင့်မားသောလုံခြုံရေးကိုပေးသည်, အကယ်. ကျွန်ုပ်တို့သည်တစ်စိတ်တစ်ပိုင်းစာလုံးများကိုနှိုင်းယှဉ်လျှင်အချို့သောကိစ္စရပ်များ (ဥပမာ - hash တန်ဖိုး 32 လုံးကိုနှိုင်းယှဉ်လျှင်အချို့သောကိစ္စရပ်များတွင် strncmp သည် အချို့သောကိစ္စရပ်များတွင်အလားအလာရှိသောရွေးချယ်စရာတစ်ခုဖြစ်နေဆဲဖြစ်သည်။
ကြိုးများကိုနှိုင်းယှဉ်သောအခါလုံခြုံရေးသည်ကျွန်ုပ်တို့ထည့်သွင်းစဉ်းစားသောပထမဆုံးအကြိမ်အချက်များအနက်မှတစ်ခုဖြစ်သည်။ PHP ၏ strncmp function ကိုအသုံးပြုခြင်းသည်အထူးသဖြင့် developer များကိုလုံခြုံရေးတိုးမြှင့်နိုင်သည့်သတ်မှတ်ထားသောသတ်မှတ်ထားသောကြိုးကြိုးများကိုနှိုင်းယှဉ်သောအခါအချိန်တိုက်ခိုက်မှုအန္တရာယ်ကိုထိရောက်စွာလျှော့ချနိုင်သည်။ သို့သော် strncmp သည်သိသာထင်ရှားသည့်လုံခြုံရေးလိုအပ်ချက်များနှင့်ပိုမိုရှုပ်ထွေးသောလုံခြုံရေးလိုအပ်ချက်များ (ထိုကဲ့သို့သော hash တန်ဖိုးများကိုနှိုင်းယှဉ်ခြင်း) အတွက်ပိုမိုရှုပ်ထွေးသောလုံခြုံရေးလိုအပ်ချက်များအတွက် ပိုမိုကောင်းမွန်သော special function ကိုအသုံးပြုခြင်းသည်အကောင်းဆုံးသောရွေးချယ်မှုဖြစ်သည်။
ကျိုးကြောင်းဆီလျော်စွာနှိုင်းယှဉ်မှုနည်းလမ်းကိုဆင်ခြင်သုံးသပ်ခြင်းဖြင့်သင်၏ PHP application သည်ပိုမိုလုံခြုံစိတ်ချရပြီးပိုမိုယုံကြည်စိတ်ချရပြီးသုံးစွဲသူများအနေဖြင့်အလားအလာရှိသောတိုက်ခိုက်မှုများမှကာကွယ်ခြင်းဖြစ်သည်။