PHP: Knip jo fragmint ôf by it wurd mei strrpos

html koade

As jo ​​mei PHP wurkje en jo allinich in fragmint fan jo boarnetekst sjen wolle en it ôfbrekke by in oantal karakters, kin jo fragmint der ûnsjoch út sjen as it mid-string wurdt dien. Ik moast in funksje skriuwe om dit te dwaan yn ASP en yn ASP.NET dy't yn prinsipe fan it lêste karakter werom fytste om de lêste romte te finen en it der ôf te snijen. Soart ferfelend en in bytsje oermjit. Jo kinne dit eins yn aksje sjen op myn hûs side wêr't ik allinich de earste 500 karakters leverje.

Ik wie hjoed folslein taret op deselde funksje te ûntwikkeljen mei PHP, mar fûn (lykas gewoanlik) dat PHP in funksje hie dy't it al docht, strrpos.

De âlde koade nimt in substring ($ ynhâld) fan it earste teken nei it maksimale oantal karakters dat jo wolle ($ maxchars):

$ ynhâld = substr ($ ynhâld, 0, $ maxchars); echo $ ynhâld;

De nije koade:

$ ynhâld = substr ($ ynhâld, 0, $ maxchars); $ pos = strrpos ($ ynhâld, ""); as ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } echo $ ynhâld;

Dat de nije koade snijt earst de ynhâld ôf by de karakterlimyt dy't jo sykje. De folgjende stap is lykwols om de lêste romte ("") yn 'e ynhâld te sykjen. $ pos sil dizze posysje wêze. No soargje ik gewoan dat d'r in romte yn 'e ynhâld is troch te freegjen as $ pos> 0. As dat net is, sil it de ynhâld gewoan ôfbrekke op it oantal karakters dat ik frege haw. As d'r romte is, sil it myn ynhâld sierlik ôfsnije op 'e romte.

Dit is in leuke manier om de kombinaasje fan it maksimale oantal tekens te brûken en it ôf te snijen by it wurd. Hoopje dat jo leuk fine!

En ik bin wis dat ik útfine sil as d'r in ASP.NET-funksje is dy't dit docht ... ik koe dy net fine.

7 Comments

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

    As $ content yn 't earstoan KORTER is dan $ maxchars, sil de koade lykas skreaun noch rjochts fan links nei in spaasje sjen en it lêste wurd knipe. Jo kinne of in romte oan 'e ein fan $ ynhâld gearfoegje, of in if dwaan (strlen () ...)

  5. 5

    Dit like te wurkjen as in funksje (adressearjen fan it foarige kommentaar):

    funksje showexcerpt ($ ynhâld, $ maxchars) {

    as (strlen ($ ynhâld)> $ maxchars) {

    $ ynhâld = substr ($ ynhâld, 0, $ maxchars);
    $ pos = strrpos ($ ynhâld, "");

    as ($ pos> 0) {
    $ ynhâld = substr ($ ynhâld, 0, $ pos);
    }

    werom $ ynhâld. "...";

    } Else {

    werom $ ynhâld;

    }

    }

  6. 6

    Wat as ús lêste karakter in punktuaasjekarakter is lykas in full-stop, útropteken as fraachteken? Spitigernôch sil dizze koade it heule wurd wiskje foarôfgeand oan ynterpunksje.  

    Ik tink dat jo better wêze soene wat skriuwe wat sterker.

  7. 7

Wat tinksto?

Dizze side brûkt Akismet om spam te ferleegjen. Learje hoe't jo kommentaargegevens ferwurke wurde.