Агар шумо бо PHP кор карда истодаед ва шумо мехоҳед, ки танҳо порчаеро аз матни манбаи худ нишон диҳед ва онро дар як қатор аломатҳо қатъ кунед, иқтибоси шумо метавонад зишт ба назар расад, агар он дар сатри миёна сохта шуда бошад. Ман бояд ин функсияро дар ASP ва дар ASP.NET нависам, ки асосан аз аломати охирин давр зада, фосилаи охиринро ёфтам ва онро дар он ҷо бурдам. Намуди бад ва каме изофанависӣ. Шумо инро воқеан дар хонаи ман дида метавонед саҳифа ки дар он ман танҳо 500 аломатро пешниҳод мекунам.
Ман имрӯз омода будам, ки бо PHP ҳамон як функсияро таҳия кунам, аммо фаҳмидам (ки маъмулан) PHP вазифае дошт, ки онро аллакай иҷро мекунад, strrpos.
Кодекси кӯҳна як сатрро ($ content) аз аломати аввал то миқдори максималии аломатҳое, ки мехоҳед ($ maxchars) мегирад:
$ content = substr ($ content, 0, $ maxchars); echo $ content;
Рамзи нав:
$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ content, ""); агар ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } echo $ content;
Ҳамин тавр, коди нав аввал мундариҷаро дар ҳудуди аломатҳое, ки ҷустуҷӯ мекунед, қатъ мекунад. Бо вуҷуди ин, қадами оянда ҷустуҷӯи фазои охир ("") дар мундариҷа мебошад. $ pos он мавқеъро ишғол мекунад. Ҳоло, ман фақат кафолат медиҳам, ки дар мундариҷа фосила мавҷуд аст, бо пурсидани он ки $ pos> 0. Агар чунин набошад, он танҳо мундариҷаро аз рӯи шумораи аломатҳои дархосткардаи ман қатъ мекунад. Агар ягон ҷойе бошад, он мундариҷаи маро дар фазо бурида хоҳад бурд.
Ин усули хуби истифодаи маҷмӯи шумораи максималии аломатҳо ва буридани он аз калима мебошад. Умедворам, ки ба шумо писанд аст!
Ва ман боварӣ ҳосил мекунам, ки оё ягон функсияи ASP.NET вуҷуд дорад, ки ин корро мекунад ... Ман онро ёфта натавонистам.
Дуг, дар C# шумо метавонед усули String.LastIndexOf-ро истифода баред, то он чизеро, ки strrpos дар PHP мекунад, иҷро кунед.
Ман медонистам, ки ин рӯй медиҳад! 🙂
Ташаккур, Абхиҷит!
Аъло! Маҳз он чизе ки ман ҷустуҷӯ мекардам. ташаккур.
Агар $content дар аввал аз $maxchars КУТоҳтар бошад, коди навишташуда то ҳол барои фосила аз рост ба чап нигоҳ карда, калимаи охиринро бурид. Шумо метавонед фосиларо дар охири $content пайваст кунед ё if (strlen()…)
Чунин ба назар мерасид, ки ин ҳамчун функсия кор мекунад (бо тавзеҳи қаблӣ):
Функсияи showexcerpt($content, $maxchars) {
агар (strlen($content) > $maxchars) {
$content= substr($content, 0, $maxchars);
$pos = strrpos($content, " ");
агар ($pos>0) {
$content = substr($content, 0, $pos);
}
$content -ро баргардонед. "...";
} Каси {
бозгаштан $ content;
}
}
Чӣ мешавад, агар аломати ниҳоии мо аломати пунктуатсия ба монанди нуқтаи пурра, аломати нидо ё аломати савол бошад? Мутаассифона, ин код тамоми калимаи пеш аз аломати пунктуатсияро нест мекунад.
Ман фикр мекунам, ки шумо беҳтар мебуд, ки чизи каме мустаҳкамтар нависед.
Чунин фикри хуб!