လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP strespos function ကိုသုံးသောအခါအနှုတ်လက်ခဏာအငြင်းပွားမှုများကိုဖြတ်သန်းသောအခါဘာဖြစ်မည်နည်း။ ၎င်း၏အပြုအမူ၏ In-depth ခွဲခြမ်းစိတ်ဖြာ

PHP strespos function ကိုသုံးသောအခါအနှုတ်လက်ခဏာအငြင်းပွားမှုများကိုဖြတ်သန်းသောအခါဘာဖြစ်မည်နည်း။ ၎င်း၏အပြုအမူ၏ In-depth ခွဲခြမ်းစိတ်ဖြာ

gitbox 2025-07-17

PHP တွင် Stropos function ကို string တစ်ခုတွင်ပထမဆုံးအလွှာ၏တည်နေရာကိုရှာဖွေရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်ချက်၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>

$ haystack သည် target string ကိုနေရာချထားသည့်နေရာတွင် $ အပ် သည်အလွှာကိုတွေ့ရှိရပြီး ဒေါ်လာ offset သည် offset parameter ဖြစ်သည်။

ပုံမှန်အားဖြင့် struspos သည် substring ပထမ ဦး ဆုံးပေါ်လာသည့်အညွှန်းကိန်းကိုပြန်ပို့သည် (0 မှရေတွက်ခြင်း) အလွှာများကိုမတွေ့ပါက မှားယွင်းစွာ ပြန်ပို့သည်။

PHP strpos ၏ပုံမှန်အပြုအမူ

ပထမ ဦး စွာ Stropos လုပ်ဆောင်ချက်များ၏ပုံမှန်အပြုအမူကိုနားလည်ရန်အရေးကြီးသည်။ အဘယ်သူမျှမ offset ( $ offset ) လွန်သောအခါ, function ကို string ၏အစအ ဦး မှာကြည့်ရှုစတင်သည်။ အောက်ပါဥပမာကိုသုံးသပ်ကြည့်ပါ -

 <span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"world"</span></span><span>;

</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 7</span></span><span>
</span></span>

ဤဥပမာတွင် strusts 7 သည် "World" တွင် "Hello, World!" တွင်ပထမဆုံးပေါ်လာသည့်နေရာတွင် 7 နှစ်ရှိပြီဖြစ်သည်။

$ offset parameter သည်၏ function ကို

$ offsetstropos function ၏တတိယ parameter သည် optional ကိုဖြစ်ပါတယ်။ ၎င်းသည်ကျွန်ုပ်တို့ကိုပစ်မှတ်ထားသည့်ကြိုးမှရှာဖွေရန်မည်သည့်နေရာတွင်စတင်မည်ကိုဖော်ပြရန်ခွင့်ပြုသည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"o"</span></span><span>;

</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 8</span></span><span>
</span></span>

ဤဥပမာတွင် strowos သည် အညွှန်းကိန်း 5 မှစတင်ရှာဖွေနေသည်။

$ offset parameter သည်အနှုတ်လက်ခဏာနံပါတ်ဖြတ်သန်းသောအခါအပြုအမူ

$ offset parameter သည်အနှုတ်လက်ခဏာနံပါတ်ကိုဖြတ်သန်းသွားသောအခါ string function သည် Target String ၏အဆုံးမှမျှော်လင့်နေပါသည်။ အထူးသဖြင့်အနုတ်လက်ခဏာနံပါတ်သည် string ၏အဆုံးမှ offset ကိုဖော်ပြသည်။ အနုတ်လက်ခဏာနံပါတ်သည်အဆုံးမှရေတွက်သောဇာတ်ကောင်အရေအတွက်ဖြစ်သည်။

ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, world!"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"o"</span></span><span>;

</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, -</span><span><span class="hljs-number">6</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 8</span></span><span>
</span></span>

ဤဥပမာတွင် -6 သည် string ၏အဆုံးမှ ("ဇာတ်ကောင်ပြီးနောက်) ဇာတ်ကောင် (" ဇာတ်ကောင်) ဟုဆိုလိုသည်။ Stropos သည် "O" ၏တည်နေရာကိုတွေ့ရှိပြီး 8 ပြန်ရောက်ခဲ့သည်။

အနုတ်လက်ခဏာနံပါတ်၏ခွဲခြမ်းစိတ်ဖြာလုပ်ငန်းစဉ် $ offset

အနုတ်လက်ခဏာ offsets ၏အလုပ်လုပ်နိယာမကိုနားလည်ရန်အခြားဥပမာတစ်ခုကိုကြည့်ကြပါစို့။

 <span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"abcdef"</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"c"</span></span><span>;

</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, -</span><span><span class="hljs-number">2</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$position</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 2</span></span><span>
</span></span>

ဤဥပမာတွင် offset -2 သည် string ၏ "abcdef" ၏ e "e" မှ "E" မှမျှော်လင့်ခြင်းဆိုလိုသည်။ stropos function ကို "E" နှင့်စတင်ပြီး "C" substring ကိုရှာဖွေသည်။ "C" သည်သာယာသောဇာတ်ကောင်မှရှေ့ဆက်ရေတွက်သောအခါ 2 ခုကိုဒုတိယနေရာတွင်ရှိသည်။

မှတ်သားရန်အရာ

အနုတ်လက်ခဏာ offsets များကိုအသုံးပြုခြင်းသည်အလွန်ပြောင်းလွယ်ပြင်လွယ်ရှိနေသော်လည်းကျွန်ုပ်တို့အာရုံစိုက်ရန်လိုအပ်သည့်အဓိကအချက်များများစွာရှိသည်။

  1. offset သည်အလွန်အမင်းအနုတ်လက်ခဏာမဖြစ်နိူင်ပါ ။ အနုတ်လက်ခဏာနံပါတ်သည် Target String ၏အရှည်ထက် သာ. ကြီးမြတ်ပါက string string string string start start ကိုကနေကြည့်ရှုလိမ့်မည်။ ဥပမာအားဖြင့်, သင်သည် -20 ကို offset တစ်ခုအနေဖြင့်ဖြတ်သန်းသွားပါက Target String တွင်စာလုံး 10 လုံးသာရှိသည်ဆိုပါစို့

  2. ရလဒ်သည်မျှော်လင့်ထားသည့်အတိုင်းမဟုတ်ပါ - အပျက်သဘောဆောင်သော offsets သည်ရှာဖွေမှုကိုအတော်လေးရှုပ်ထွေးစေသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် string သို့မဟုတ်ရှာဖွေမှု၏အရှည်ကိုအရှည်မဆုံးဖြတ်ပါက၎င်းသည်မမှန်ကန်ကြောင်းရလဒ်များဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့် developer များက offset နှင့် target string length အကြားဆက်နွယ်မှုကိုနားလည်ရန်သေချာစေသင့်သည်။

အကျဉ်းချုပ်

PHP ၏ Stropos function သည်အနှုတ်လက်ခဏာကိုဖြတ်သန်းသွားသောအခါ string ၏အဆုံးမှမျှော်လင့်ထားသည့်အရာသည်ပြောင်းလွယ်ပြင်လွယ်ရှိစေသည်။ သို့သော်တစ်ချိန်တည်းမှာပင် offset ၏အကြွင်းမဲ့တန်ဖိုးသည် string ၏အရှည်ထက်မကျော်လွန်စေရန်အနှုတ်လက္ခဏာများကိုအသုံးပြုသောအခါသတိထားပါ။ ယင်းကိုနားလည်ခြင်းသည်ရှာဖွေရေးလုပ်ငန်းများကိုပိုမိုတိကျစွာထိန်းချုပ်ရန်နှင့်မလိုအပ်သောအမှားများကိုရှောင်ရှားရန်ကူညီနိုင်ရန်ကူညီနိုင်သည်။