PHP: Klip dit uddrag af ordet ved hjælp af strrpos

html kode

Hvis du arbejder med PHP, og du kun vil vise et uddrag fra din kildetekst og afskære det med et antal tegn, kan dit uddrag se grimt ud, hvis det er lavet i midtstrengen. Jeg var nødt til at skrive en funktion for at gøre dette i ASP og i ASP.NET, der grundlæggende cyklede fra det sidste tegn tilbage for at finde det sidste mellemrum og afskære det der. Slags grimt og lidt for stort. Du kan faktisk se dette i aktion på mit hjem side hvor jeg kun giver de første 500 tegn.

Jeg var fuldt forberedt på at udvikle den samme funktion med PHP i dag, men fandt (som normalt), at PHP havde en funktion, der allerede gør det, strrpos.

Den gamle kode tager en understreng ($ indhold) fra det første tegn til det maksimale antal tegn, du ønsker ($ maxchars):

$ indhold = substr ($ indhold, 0, $ maxchars); ekko $ indhold;

Den nye kode:

$ indhold = substr ($ indhold, 0, $ maxchars); $ pos = strrpos ($ indhold, ""); hvis ($ pos> 0) {$ content = substr ($ content, 0, $ pos); } ekko $ indhold;

Så den nye kode afskærer først indholdet ved den tegnbegrænsning, du leder efter. Det næste trin er imidlertid at lede efter det sidste mellemrum (”“) i indholdet. $ pos vil ende med at være den position. Nu sørger jeg simpelthen for, at der faktisk er et mellemrum i indholdet ved at spørge, om $ pos> 0. Hvis der ikke er det, vil det bare afskære indholdet med det antal tegn, jeg har anmodet om. Hvis der er plads, vil det yndefuldt afskære mit indhold på rummet.

Dette er en god måde at bruge kombinationen af ​​det maksimale antal tegn på og afskære det ved ordet. Håber du kan lide!

Og jeg er sikker på, at jeg finder ud af, om der er en ASP.NET-funktion, der gør dette ... Jeg kunne ikke finde en.