အကယ်၍ သင်သည် PHP နှင့်အတူအလုပ်လုပ်နေပြီးသင်၏မူလစာသားမှကောက်နုတ်ချက်တစ်ခုကိုသာဖော်ပြလိုပြီးအက္ခရာအတော်များများတွင်ဖြတ်တောက်လိုလျှင်၎င်းကောက်နှုတ်ချက်သည်နှစ်လယ်ပိုင်းတွင်လုပ်လျှင်အရုပ်ဆိုးသွားနိုင်သည်။ ငါလုပ်ဖို့ function တစ်ခုရေးခဲ့ရတယ် ASP နှင့် ASP.NET မှာနောက်ဆုံးအက္ခရာကနေစက်ဝိုင်းစီးပြီးနောက်ဆုံးအာကာသကိုရှာပြီးအဲဒီမှာဖြတ်လိုက်တယ်။ လည်ချောင်းနာနှင့် overkill ၏နည်းနည်း။ ဒါကိုငါ့အိမ်မှာတကယ်လုပ်လို့ရတယ် စာမျက်နှာ ငါသာပထမ ဦး ဆုံးဇာတ်ကောင် 500 ပေးဘယ်မှာ။
ယနေ့ခေတ် PHP နှင့်အတူတူပင် function ကိုတီထွင်ရန်အသင့်ရှိနေသော်လည်း PHP တွင်လုပ်ဆောင်နေသော function ရှိသည် (ပုံမှန်အတိုင်း) ကိုတွေ့ရှိခဲ့သည်။ နင်.
ကုဒ်အဟောင်းသည်ပထမစာလုံးမှ substring ($ content) ကိုသင်အများဆုံးလိုချင်သောစာလုံးရေ ($ maxchars) သို့ယူသွားလိမ့်မည်။
$ content = substr ($ content, 0, $ maxchars); echo $ အကြောင်းအရာ၊
ကုဒ်အသစ်
$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ အကြောင်းအရာ၊ ""); if ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } အကြောင်းအရာ echo;
ဒါကြောင့် code အသစ်ကသင်ရှာဖွေနေတဲ့ character limit မှာအကြောင်းအရာကိုအရင်ဖြတ်ပါ သို့သော်နောက်တစ်ဆင့်မှာအကြောင်းအရာရှိနောက်ဆုံးနေရာ (““) ကိုရှာဖွေရန်ဖြစ်သည်။ $ pos ကြောင်းအနေအထားဖြစ်ခြင်းတက်လေလိမ့်မယ်။ အခုတော့ငါ pos ကို $ pos> 0 ရှိမရှိမေးမြန်းခြင်းအားဖြင့်အကြောင်းအရာထဲမှာအာကာသရှိတကယ်တော့သေချာ။ အကယ်၍ မရှိပါက၎င်းသည်ကျွန်ုပ်တောင်းဆိုသောစာလုံးအရေအတွက်ကိုသာဖြတ်တောက်လိမ့်မည်။ နေရာလွတ်ရှိလျှင်၊ ကျွန်ုပ်သည်ကျွန်ုပ်၏အကြောင်းအရာကိုအာကာသထဲတွင်လျောက်ပတ်စွာဖြတ်ပစ်လိမ့်မည်။
ဤသည်မှာအက္ခရာအများဆုံးအရေအတွက်ပေါင်းစပ်အသုံးပြုခြင်းနှင့်စာလုံးကိုဖြတ်တောက်ခြင်းကိုအကောင်းဆုံးနည်းလမ်းဖြစ်သည်။ မင်းကြိုက်လားမျှော်လင့်ပါတယ်
ပြီးတော့ ASP.NET function တစ်ခုခုလုပ်လို့ရလားဆိုတာငါရှာမယ်သေချာတယ်။ အဲဒါကိုငါရှာမရဘူး။
Doug၊ C# တွင် သင်သည် PHP တွင် strrpos လုပ်ဆောင်သောအရာကိုလုပ်ဆောင်ရန် String.LastIndexOf နည်းလမ်းကို အသုံးပြုနိုင်သည်။
ဒီလိုဖြစ်လာမယ်ဆိုတာ ငါသိတယ်။ 🙂
ကျေးဇူးတင်ပါတယ် Abhijit။
အရမ်းကောင်းတယ်! ငါရှာခဲ့တာတွေချည်းပဲ။ ကျေးဇူးပါ။
$content သည် $maxchars ထက် အစပိုင်းတွင် ပိုတိုပါက ရေးထားသည့်အတိုင်း ကုဒ်သည် နေရာလွတ်တစ်ခုအတွက် ဘယ်ဘက်သို့ ညာဘက်တွင် ရှိနေမည်ဖြစ်ပြီး နောက်ဆုံးစာလုံးကို ဖြတ်တောက်မည်ဖြစ်သည်။ $content ၏အဆုံးတွင် space တစ်ခုကို ပေါင်းစပ်နိုင်သည် သို့မဟုတ် if (strlen()…)
၎င်းသည် လုပ်ဆောင်ချက်တစ်ခုအနေဖြင့် လုပ်ဆောင်ပုံပေါ်သည် (ယခင်မှတ်ချက်ကို ဖြေရှင်းခြင်း)။
function show excerpt($content၊ $maxchars) {
အကယ်၍ (strlen($content) > $maxchars) {
$content= substr($content၊ 0၊ $maxchars);
$pos = strrpos($content, " ");
အကယ်၍ ($pos>0) {
$content = substr($content၊ 0၊ $pos);
}
$content ကို ပြန်ပေးပါ။ "…";
} သည်အခြား {
ပြန်လာ $ အကြောင်းအရာ;
}
}
ကျွန်ုပ်တို့၏ နောက်ဆုံးအက္ခရာသည် အဆုံးအဖြတ်၊ အာမေဋိတ်အမှတ်အသား သို့မဟုတ် မေးခွန်းအမှတ်အသားကဲ့သို့ သတ်ပုံအက္ခရာဖြစ်ပါက၊ ကံမကောင်းစွာပဲ၊ ဤကုဒ်သည် ရှေ့ကပြောခဲ့သော သတ်ပုံအက္ခရာတစ်ခုလုံးကို ရှင်းပစ်မည်ဖြစ်သည်။
နည်းနည်းပိုခိုင်ခံ့အောင်ရေးတာ ပိုကောင်းမယ်ထင်တယ်။
အကြံကောင်းတစ်ခု။