Tehnologija u nastajanju

PHP: Odrežite svoj odlomak na riječ koristeći strrpos

Ako radite s PHP-om i želite prikazati samo odlomak iz izvornog teksta i odrezati ga na više znakova, vaš odlomak može izgledati ružno ako se radi u sredini niza. Morao sam napisati funkciju da to učinim u ASP-u i u ASP.NET-u koja se u osnovi okretala od zadnjeg znaka natrag da bi pronašla zadnji prostor i tamo ga odsjekla. Nekako gadno i malo pretjerano. To zapravo možete vidjeti na djelu kod moje kuće Strana gdje pružam samo prvih 500 znakova.

Bio sam potpuno spreman razviti istu funkciju s PHP-om danas, ali ustanovio sam (kao i obično) da PHP već ima funkciju koja to već radi, strrpos.

Stari će kôd uzeti podniz ($ sadržaj) od prvog znaka do maksimalnog broja znakova koji želite ($ maxchars):

$ content = substr ($ content, 0, $ maxchars); echo $ content;

Novi kod:

$ content = substr ($ content, 0, $ maxchars); $ pos = strrpos ($ sadržaj, ""); if ($ pos> 0) {$ content = substr ($ sadržaj, 0, $ pos); } echo $ content;

Dakle, novi kod prvo odreže sadržaj na ograničenju broja znakova koje tražite. Međutim, sljedeći korak je traženje posljednjeg razmaka ("") u sadržaju. $ pos će prestati biti takav položaj. Sada jednostavno osiguravam da u sadržaju zaista postoji prostor pitajući je li $ pos> 0. Ako nema, samo će odrezati sadržaj na broj znakova koje sam tražio. Ako ima prostora, graciozno će odsjeći moj sadržaj u prostoru.

Ovo je lijep način korištenja kombinacije maksimalnog broja znakova i odsijecanja pri riječi. Nadam se da volite!

I siguran sam da ću otkriti postoji li ASP.NET funkcija koja to radi ... Nisam je mogao pronaći.

Douglas Karr

Douglas Karr je osnivač Martech Zone i priznati stručnjak za digitalnu transformaciju. Douglas je pomogao u pokretanju nekoliko uspješnih MarTech startupa, pomogao je u due diligenceu od preko 5 milijardi dolara u Martech akvizicijama i investicijama, te nastavlja sa lansiranjem vlastitih platformi i usluga. On je suosnivač Highbridge, konsultantska firma za digitalnu transformaciju. Douglas je također objavljeni autor Dummie's vodiča i knjige o poslovnom liderstvu.

Vezani članci

7 Komentari

  1. Ako je $content inicijalno KRAĆI od $maxchars, kod kako je napisan će i dalje izgledati zdesna nalijevo za razmak i izrezati posljednju riječ. Možete ili spojiti razmak na kraju $content, ili napraviti if (strlen()…)

  2. Činilo se da ovo funkcionira kao funkcija (obraćajući se na prethodni komentar):

    funkcija showexcerpt($content, $maxchars) {

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

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

    if ($pos>0) {
    $content = substr($content, 0, $pos);
    }

    vrati $content . "...";

    } Else {

    povratni $ sadržaj;

    }

    }

  3. Šta ako je naš konačni znak znak interpunkcije kao što je tačka, uzvičnik ili upitnik? Nažalost, ovaj kod će obrisati cijelu riječ koja prethodi pomenutom znaku interpunkcije.  

    Mislim da bi bilo bolje da napišete nešto malo robusnije.

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.