PHP: Kata kifungu chako kwa neno ukitumia strrpos

nambari ya html

Ikiwa unafanya kazi na PHP na unataka kuonyesha dondoo kutoka kwa maandishi yako ya asili na kuikata kwa wahusika kadhaa, dondoo lako linaweza kuonekana baya ikiwa limefanywa katikati ya kamba. Ilinibidi niandike kazi kufanya hii katika ASP na katika ASP.NET ambayo kimsingi ilikuwa baiskeli kutoka kwa mhusika wa mwisho kurudi kupata nafasi ya mwisho na kuikata hapo. Aina mbaya na ya kuzidi kidogo. Kwa kweli unaweza kuona hii ikifanya kazi nyumbani kwangu ukurasa ambapo mimi hutoa tu herufi 500 za kwanza.

Nilikuwa tayari kabisa kukuza kazi sawa na PHP leo lakini nikapata (kama kawaida) kwamba PHP ilikuwa na kazi ambayo inafanya tayari, strpos.

Nambari ya zamani itachukua safu ndogo ($ yaliyomo) kutoka kwa herufi ya kwanza hadi idadi ya juu ya herufi unayotaka ($ maxchars):

$ yaliyomo = substr (yaliyomo $, 0, $ maxchars); echo maudhui ya $;

Nambari mpya:

$ yaliyomo = substr (yaliyomo $, 0, $ maxchars); $ pos = strrpos ($ yaliyomo, ""); ikiwa ($ pos> 0) {$ yaliyomo = substr (maudhui ya $, 0, $ pos); } echo maudhui ya $;

Kwa hivyo nambari mpya hupunguza kwanza yaliyomo kwenye kikomo cha tabia unayotafuta. Walakini, hatua inayofuata ni kutafuta nafasi ya mwisho ("") katika yaliyomo. $ pos itaendelea kuwa nafasi hiyo. Sasa, ninahakikisha tu kuwa kuna nafasi katika yaliyomo kwa kuuliza ikiwa $ pos> 0. Ikiwa hakuna, itakata tu yaliyomo kwa idadi ya wahusika ambao nimeomba. Ikiwa kuna nafasi yoyote, itakata kwa upole yaliyomo kwenye nafasi hiyo.

Hii ni njia nzuri ya kutumia mchanganyiko wa idadi kubwa ya wahusika na kuikata kwa neno. Natumahi unapenda!

Na nina hakika nitapata ikiwa kuna kazi ya ASP.NET ambayo inafanya hii… sikuweza kupata moja.

7 Maoni

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

    Ikiwa yaliyomo $ ni mwanzoni SHORTER kuliko $ maxchars nambari kama ilivyoandikwa bado itaonekana kulia kwenda kushoto kwa nafasi na kukata neno la mwisho. Unaweza kubatilisha nafasi mwishoni mwa yaliyomo $, au fanya if (strlen ()…)

  5. 5

    Hii ilionekana kufanya kazi kama kazi (kushughulikia maoni ya awali):

    kazi showexcerpt ($ yaliyomo, $ maxchars) {

    ikiwa (strlen ($ content)> $ maxchars) {

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

    ikiwa ($ pos> 0) {
    $ yaliyomo = substr (yaliyomo $, 0, $ pos);
    }

    rudisha yaliyomo $. "…";

    } Mwingine {

    Rudi maudhui ya $;

    }

    }

  6. 6

    Je! Ikiwa tabia yetu ya mwisho ni herufi za uakifishaji kama kusimama kamili, alama ya mshangao au alama ya swali? Kwa bahati mbaya, nambari hii itafuta neno lote lililotangulia tabia ya uakifishaji.  

    Nadhani ungekuwa bora ukiandika kitu kwa nguvu zaidi.

  7. 7

Unafikiri?

Tovuti hii inatumia Akismet kupunguza spam. Jifunze jinsi maoni yako yanasindika.