PHP တွင် Stristr () function သည် string တစ်ခုတွင်သတ်မှတ်ထားသောအလွှာတစ်ခု၏ပထမဆုံးဖြစ်ပျက်မှုကိုရှာဖွေရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ဤ function သည်စာလုံးအသေးနှင့်စာသားကိုက်ညီခြင်းနှင့်ပြန်လည်ရယူခြင်းအတွက်မကြာခဏအသုံးပြုသည်။ သို့သော်မကြာခဏဆိုသလိုရှာဖွေမှုများကိုမကြာခဏလိုအပ်သည့်အခါ Substrr () ၏စွမ်းဆောင်ရည်သည်အထူးသဖြင့်ကြီးမားသောစာသားကိုကိုင်တွယ်သောအခါ, ထို့ကြောင့်ဤလုပ်ဆောင်မှု၏စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်ပြုလုပ်ခြင်းသည်လျှောက်လွှာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်အတွက်အလွန်အရေးကြီးသည်။
SRITRATR () function ၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">stristr</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">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>$ haystack : ရှာဖွေရန်အဓိက string ကို။
$ အပ် - တွေ့ရှိရမည့်အလွှာ။
ဒီ function ဟာ $ အပ် ( ပထမအပ်ခြင်း၏ပထမအကြိမ်ဖြစ်စဉ် (သို့) မှားယွင်းသော ဖြစ်ရပ်မှန်ပြီးနောက် $ haystack ၏အစိတ်အပိုင်းတစ်ခုသို့ပြန်ပို့သည်။
Substr () သည်ရိုးရှင်းလွယ်ကူပြီးအသုံးပြုရလွယ်ကူသော်လည်း၎င်း၏စွမ်းဆောင်ရည်သည်အကြီးစားစာသားရှာဖွေခြင်းအတွက်မကောင်းသည်။
SUGRistR () သည် $ haystack မှတစ်ဆင့်အပြည့်အဝ $ haystack မှတစ်ဆင့်မပြည့်စုံမှီသို့မဟုတ် itsstack မှ iterates ကိုဇာတ်ကောင်မှ $ haystack string ကိုစကင်ဖတ်စစ်ဆေးရန်လိုအပ်သည်။ အကယ်. သင်သည်ပိုမိုကြီးမားသော string တစ်ခုတွင်ရှာဖွေရေးလုပ်ငန်းများမျိုးစုံပြုလုပ်ပါက, တစ်ခုချင်းစီကိုအချိန်အပိုင်းအခြားတစ်ခုလုံးကိုစကင်ဖတ်စစ်ဆေးရန်ဖြစ်နိုင်သည်။ အထူးသဖြင့်ဖိုင်တွဲများသို့မဟုတ်အချက်အလက်အမြောက်အများကိုလုပ်ဆောင်ရန်အတွက်မကြာခဏရှာဖွေမှုများလိုအပ်သောစစ်ဆင်ရေးများလိုအပ်သည့်လုပ်ငန်းများအတွက်ဤနည်းလမ်းသည်မစွမ်းဆောင်နိုင်ပါ။
ဥပမာအားဖြင့်, ကျွန်ုပ်တို့တွင် log file တစ်ခုရှိပြီးစာသားများစွာဖြင့်မှတ်တမ်းဖိုင်ရှိသည်ဆိုပါစို့။ ကွဲပြားခြားနားသောသော့ချက်စာလုံးများကိုရှာဖွေရန်လိုအပ်သည်ဆိုပါစို့။ အကယ်. Supristr () ကိုရှာဖွေခြင်းတိုင်းဟုခေါ်သည်ဆိုပါကမလိုအပ်သောဖြတ်လမ်းများစွာကိုဖြစ်ပေါ်စေလိမ့်မည်။ ၎င်းသည်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်စေလိမ့်မည်။
အကယ်. သင်သည်အလွှာတစ်ခုတည်ရှိခြင်းရှိမရှိကိုသာရှာဖွေပါကအလွှာအပြီးအကြောင်းအရာများကိုပြန်ပို့ရန်မလိုအပ်ပါကသင် stropos () function ကို သုံး. စဉ်းစားနိုင်သည်။ strows () ,) stropos () နှင့်နှိုင်းယှဉ်ပါကပထမ ဦး ဆုံးပွဲစဉ်ကိုသာပြန်ပို့လိုက်ပြီး substring content တစ်ခုလုံးကိုပြန်ပို့ရန်မလိုအပ်ပါ။
<span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"This is a large text example that we are working with."</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"large"</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">if</span></span><span> (</span><span><span class="hljs-variable">$position</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Found at position: "</span></span><span> . </span><span><span class="hljs-variable">$position</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">"Not found."</span></span><span>;
}
</span></span>Time Stropos () ၏ရှုပ်ထွေးမှုသည် O (n) သည် O (N) သည် Of (N) သည် roughtack ၏အရှည်ဖြစ်သည်။
အကယ်. ကြည့်ရှုခြင်းစစ်ဆင်ရေးများစွာလိုအပ်ပြီး string scan များကိုရှောင်ရှားလိုပါကပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုရန်သင်စဉ်းစားနိုင်သည်။ ပုံမှန်အသုံးအနှုန်းများသည်လုပ်ဆောင်မှုများကိုရှာဖွေရန်ဖုန်းခေါ်ဆိုမှုများစွာမရှိဘဲပုံစံမျိုးစုံနှင့်ကိုက်ညီနိုင်သည်။ PHP သည် Preg_match () နှင့် Preg_Match_all () ဤ function ကိုအကောင်အထည်ဖော်ရန်အတွက်လုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသည်။
<span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"This is a large text example that we are working with."</span></span><span>;
</span><span><span class="hljs-variable">$pattern</span></span><span> = </span><span><span class="hljs-string">"/large|text|example/i"</span></span><span>; </span><span><span class="hljs-comment">// မျိုးစုံသော့ချက်စာလုံးများကိုပုံမှန်ကိုက်ညီမှုကိုသုံးပါ</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">$pattern</span></span><span>, </span><span><span class="hljs-variable">$haystack</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Match found!"</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">"No match found."</span></span><span>;
}
</span></span>ပုံမှန်အသုံးအနှုန်းတွေနဲ့အတူ substrings မှာ substrings တွေမှာ scan တွေနဲ့ကိုက်ညီပြီး Stritr သို့ထပ်ခါတလဲလဲတောင်းဆိုခြင်းကိုရှောင်ရှားနိုင်ပြီး,
ရှာဖွေရေးလုပ်ငန်းစဉ်အတွင်းစာသားအကြောင်းအရာများကိုအစားထိုးရန်သို့မဟုတ်ဖျက်ပစ်ရန်လိုအပ်ပါက strit_replace () မှတဆင့်စာသားကိုကြိုတင်ပြင်ဆင်ရန်ပိုမိုထိရောက်လိမ့်မည်။ str_replace () သည် အစားထိုးလုပ်ငန်းမျိုးစုံကိုဖြတ်သန်းမှုတစ်ခုတည်းဖြင့်ပြုလုပ်နိုင်သည်။
<span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"This is a large text example that we are working with."</span></span><span>;
</span><span><span class="hljs-variable">$search</span></span><span> = [</span><span><span class="hljs-string">"large"</span></span><span>, </span><span><span class="hljs-string">"text"</span></span><span>, </span><span><span class="hljs-string">"example"</span></span><span>];
</span><span><span class="hljs-variable">$replace</span></span><span> = [</span><span><span class="hljs-string">"big"</span></span><span>, </span><span><span class="hljs-string">"word"</span></span><span>, </span><span><span class="hljs-string">"sample"</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</span></span><span>(</span><span><span class="hljs-variable">$search</span></span><span>, </span><span><span class="hljs-variable">$replace</span></span><span>, </span><span><span class="hljs-variable">$haystack</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
</span></span>ဤချဉ်းကပ်မှုသည်အထူးသဖြင့်စာနာထောက်ထားမှုရှိရန်လိုအပ်သည့်အခြေအနေများအတွက်အထူးသဖြင့်သင့်လျော်သည်။
ကြီးမားသောစာသားဖိုင်များပေါ်တွင်ရှာဖွေမှုများပြုလုပ်သောအခါမလိုအပ်သောမှတ်ဉာဏ်ခွဲဝေချထားရေးနှင့်ရှာဖွေမှုတစ်ခုစီကိုကူးယူခြင်းမရှိကြောင်းသေချာအောင်လုပ်ပါ။ အထူးသဖြင့်ကြီးမားသောစာသားအချက်အလက်များကိုကိုင်တွယ်ဖြေရှင်းသည့်အခါကျွမ်းကျင်မှုညွှန်ကြားချက်များနှင့် streaming ဖတ်ခြင်းဖြင့်စွမ်းဆောင်ရည်ကို အသုံးပြု. စွမ်းဆောင်ရည်ကိုအကောင်းဆုံးပြုလုပ်နိုင်သည်။
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'large_file.txt'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">stristr</span></span><span>(</span><span><span class="hljs-variable">$line</span></span><span>, </span><span><span class="hljs-string">'needle'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Found in line: "</span></span><span> . </span><span><span class="hljs-variable">$line</span></span><span>;
}
}
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span></span>အထက်ဖော်ပြပါကုဒ်များတွင်ဖိုင်လိုင်းကိုလိုင်းဖြင့်ဖတ်ပြီးရှာဖွေခြင်းကိုရှာဖွေပြီး၎င်းကိုမှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချနိုင်ပြီးဖိုင်တစ်ခုလုံးကိုတစ်ပြိုင်နက်တည်းဖွင့်လိမ့်မည်မဟုတ်ချေ။
မကြာခဏရှာဖွေရေးအခြေအနေများအတွက်, cache ၏မဟာဗျူဟာကိုလက်ခံခြင်းသည်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဥပမာ, တူညီသောအလွှာများအတွက်ထပ်ခါတလဲလဲရှာဖွေမှုများကိုရှောင်ရှားရန်ရှာဖွေထားသောရလဒ်များကိုရှာဖွေတွေ့ရှိပါ။ Cache သိုလှောင်မှုအတွက် PHCU တိုးချဲ့ခြင်းသို့မဟုတ်ပြင်ပ Cache တိုးချဲ့ကိရိယာများကိုသင်အသုံးပြုနိုင်သည်။
<span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"This is a large text example that we are working with."</span></span><span>;
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"large"</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$cachedResult</span></span><span> = </span><span><span class="hljs-title function_ invoke__">apcu_fetch</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-string">"Found from cache: "</span></span><span> . </span><span><span class="hljs-variable">$cachedResult</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stristr</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-title function_ invoke__">apcu_store</span></span><span>(</span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-variable">$result</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Found: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
}
</span></span>၎င်းသည်အထူးသဖြင့်ရှုပ်ထွေးသောစာသားကိုပြုပြင်သည့်အခါထပ်ခါတလဲလဲရှာဖွေမှုများကိုအလွန်အကျွံရှာဖွေခြင်းကိုလျော့နည်းစေသည်။
STRistR () သည် PHP တွင်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ strowos () , ပုံမှန်အသုံးအနှုန်းများ, မှတ်ဉာဏ်ပိုမိုကောင်းမွန်အောင်ပြုပြင်ခြင်း,