PHP: Sny u uittreksel af met die woord strrpos

html-kode

As u met PHP werk en u slegs 'n uittreksel uit u bronteks wil wys en dit op 'n aantal karakters wil afknip, kan u uittreksel lelik lyk as dit in die middelste string gedoen word. Ek moes 'n funksie skryf om dit in ASP en in ASP.NET te doen wat basies van die laaste karakter teruggery het om die laaste spasie te vind en dit daar af te sny. So 'n nare en 'n bietjie oormatige werking. U kan dit eintlik in my huis sien bladsy waar ek net die eerste 500 karakters verskaf.

Ek was vandag heeltemal bereid om dieselfde funksie met PHP te ontwikkel, maar het gevind (soos gewoonlik) dat PHP 'n funksie het wat dit al doen, strrpos.

Die ou kode sal 'n onderdeel ($ inhoud) van die eerste karakter na die maksimum aantal karakters neem ($ maxchars):

$ inhoud = substr ($ inhoud, 0, $ maxchars); eggo $ inhoud;

Die nuwe kode:

$ inhoud = substr ($ inhoud, 0, $ maxchars); $ pos = strrpos ($ inhoud, ""); if ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } eggo $ inhoud;

Die nuwe kode sny dus eers die inhoud af teen die karakterlimiet waarna u op soek is. Die volgende stap is egter om na die laaste spasie ("") in die inhoud te soek. $ pos sal uiteindelik daardie posisie wees. Nou verseker ek eenvoudig dat daar eintlik 'n spasie in die inhoud is deur te vra of $ pos> 0. As dit nie is nie, sal die inhoud net afgesny word op die aantal karakters wat ek aangevra het. As daar spasie is, sal dit my inhoud op die spasie grasieus afsny.

Dit is 'n goeie manier om die kombinasie van die maksimum aantal karakters te gebruik en dit by die woord af te sny. Hoop jy hou van!

En ek is seker ek sal agterkom of daar 'n ASP.NET-funksie is wat dit doen ... ek kon nie een kry nie.

7 Comments

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

    As $ content aanvanklik KORTER as $ maxchars is, sal die kode soos geskrewe steeds regs na links vir 'n spasie kyk en die laaste woord uitsny. U kan 'n spasie aan die einde van $ content saamvat, of 'n if doen (strlen () ...)

  5. 5

    Dit lyk asof dit as 'n funksie werk (om die vorige opmerking aan te spreek):

    funksie showexcerpt ($ content, $ maxchars) {

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

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

    as ($ pos> 0) {
    $ inhoud = substr ($ inhoud, 0, $ pos);
    }

    gee $ inhoud terug. "...";

    } Else {

    gee $ inhoud terug;

    }

    }

  6. 6

    Wat as ons finale karakter 'n leesteken is soos 'n punt, uitroepteken of vraagteken? Ongelukkig sal hierdie kode die hele woord voor die genoemde leestekenkarakter uitvee.  

    Ek dink dat u beter iets beter kan skryf.

  7. 7

Wat dink jy?

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerking verwerk is.