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 ôfbrekke by in oantal karakters, kin jo fragmint der ûnsjoch útsjen 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 dêr ôf te snijen. Soart ferfelend en in lyts bytsje te folle. 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 ôfknippe 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 $ ynhâld yn earste ynstânsje KORTER is as $ maxchars sil de koade sa't skreaun is noch rjochts nei lofts sjen foar in spaasje en it lêste wurd útknipe. Jo kinne of in spaasje oan 'e ein fan $content ferbine, of in if dwaan (strlen()...)

  5. 5

    Dit like te wurkjen as in funksje (oanpakt de foarige opmerking):

    function showexcerpt($content, $maxchars) {

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

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

    if ($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 ynterpunksje is lykas in punt, útropteken of fraachteken? Spitigernôch, dizze koade sil wiskje it hiele wurd foarôfgeand oan sein ynterpunksje karakter.  

    Ik tink dat jo better wat robúster skriuwe kinne.

  7. 7

Wat tinksto?

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