PHP: Aqta 's-silta tiegħek bil-kelma billi tuża strrpos

kodiċi html

Jekk qed taħdem bil-PHP u trid turi biss silta mit-test tas-sors tiegħek u taqtagħha f'numru ta 'karattri, is-silta tiegħek tista' tidher kerha jekk tkun saret f'nofs is-sekwenza. Kelli nikteb funzjoni biex nagħmel dan fl-ASP u fl-ASP.NET li bażikament iċċiklat mill-aħħar karattru lura biex issib l-aħħar spazju u taqtagħha hemm. Tip ta 'diżgustanti u ftit żejjed. Fil-fatt tista 'tara dan fl-azzjoni fuq dar tiegħi paġna fejn nipprovdi biss l-ewwel 500 karattru.

Jien kont ippreparat għal kollox biex niżviluppa l-istess funzjoni ma 'PHP illum imma sibt (bħas-soltu) li PHP kellu funzjoni li diġà tagħmlu, strrpos.

Il-kodiċi l-antik jieħu substring ($ kontenut) mill-ewwel karattru għan-numru massimu ta 'karattri li trid ($ maxchars):

$ content = substr ($ content, 0, $ maxchars); eku $ kontenut;

Il-kodiċi l-ġdid:

$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ kontenut, ""); jekk ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } eku $ kontenut;

Allura l-kodiċi l-ġdid l-ewwel jaqta 'l-kontenut fil-limitu tal-karattru li qed tfittex. Madankollu, il-pass li jmiss huwa li tfittex l-aħħar spazju ("") fil-kontenut. $ pos jispiċċa jkun dik il-pożizzjoni. Issa, sempliċement niżgura li fil-fatt hemm spazju fil-kontenut billi nistaqsi jekk $ pos> 0. Jekk ma jkunx hemm, se taqta 'l-kontenut fin-numru ta' karattri li tlabt. Jekk hemm xi spazju, bil-grazzja se jaqta 'l-kontenut tiegħi fl-ispazju.

Dan huwa mod sabiħ ta 'kif tuża l-kombinazzjoni tan-numru massimu ta' karattri u taqta 'bil-kelma. Nispera li tħobb!

U jien ċert li nsib jekk hemmx funzjoni ASP.NET li tagħmel dan ... Ma stajtx insib waħda.

7 Kummenti

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

    Jekk $ content huwa inizjalment SHORTER minn $ maxchars il-kodiċi kif miktub xorta jidher mill-lemin għax-xellug għal spazju u aqta 'l-aħħar kelma. Tista 'jew tikkonkatenja spazju fit-tmiem ta' $ content, jew tagħmel if (strlen () ...)

  5. 5

    Dan deher jaħdem bħala funzjoni (li jindirizza l-kumment preċedenti):

    funzjoni showexcerpt ($ kontenut, $ maxchars) {

    jekk (strlen ($ kontenut)> $ maxchars) {

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

    jekk ($ pos> 0) {
    $ kontenut = substr ($ kontenut, 0, $ pos);
    }

    jirritorna $ kontenut. "...";

    } Inkella {

    ritorn tal-kontenut $;

    }

    }

  6. 6

    X'jiġri jekk il-karattru finali tagħna huwa karattru ta 'punteġġjatura bħal punt, punt ta' esklamazzjoni jew punt ta 'mistoqsija? Sfortunatament, dan il-kodiċi se jħassar il-kelma kollha li tippreċedi l-imsemmi karattru ta 'punteġġjatura.  

    Naħseb li tkun aħjar li tikteb xi ħaġa ftit iktar robusta.

  7. 7

What do you think?

Dan is-sit juża Akismet biex inaqqas l-ispam. Tgħallem kif il-kumment tiegħek huwa pproċessat.