PHP: Истифодаи калимаро бо истифода аз strrpos буред

рамзи HTML

Агар шумо бо 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 вуҷуд дорад, ки ин корро мекунад ... Ман онро ёфта натавонистам.

7 Комментарии

  1. 1
  2. 2
  3. 3
  4. 4

    Агар $content дар аввал аз $maxchars КУТоҳтар бошад, коди навишташуда то ҳол барои фосила аз рост ба чап нигоҳ карда, калимаи охиринро бурид. Шумо метавонед фосиларо дар охири $content пайваст кунед ё if (strlen()…)

  5. 5

    Чунин ба назар мерасид, ки ин ҳамчун функсия кор мекунад (бо тавзеҳи қаблӣ):

    Функсияи showexcerpt($content, $maxchars) {

    агар (strlen($content) > $maxchars) {

    $content= substr($content, 0, $maxchars);
    $pos = strrpos($content, " ");

    агар ($pos>0) {
    $content = substr($content, 0, $pos);
    }

    $content -ро баргардонед. "...";

    } Каси {

    бозгаштан $ content;

    }

    }

  6. 6

    Чӣ мешавад, агар аломати ниҳоии мо аломати пунктуатсия ба монанди нуқтаи пурра, аломати нидо ё аломати савол бошад? Мутаассифона, ин код тамоми калимаи пеш аз аломати пунктуатсияро нест мекунад.  

    Ман фикр мекунам, ки шумо беҳтар мебуд, ки чизи каме мустаҳкамтар нависед.

  7. 7

Ту чӣ фикр мекунӣ?

Ин сомона ба воситаи Akismet барои кам кардани спам истифода мешавад. Омӯзед, ки чӣ тавр маълумотҳои худро тафтиш кунед.