Programare PHP: cum extragi și afișezi doar o parte dintr-un text cu substr()

În dezvoltarea aplicațiilor web este foarte des necesar să afișezi doar un rezumat sau o previzualizare (un extras sau teaser) a unui articol ori a unui câmp de text lung. De exemplu, dacă pe pagina principală sau într-o listă vrei să prezinți doar primele 250 de caractere dintr-un text urmate de puncte de suspensie, PHP pune la dispoziție funcția nativă substr().

Pentru a automatiza acest proces, putem scrie o funcție reutilizabilă simplă și eficientă.

Funcție PHP pentru scurtarea textului

Iată o implementare clară a unei funcții de trunchiere a șirurilor de caractere:

function strings_more($text, $numchar, $wordafter = "..") {
    if (strlen(trim($text)) > $numchar) {
        return substr($text, 0, (($numchar - 1) - strlen($wordafter))) . $wordafter;
    } else {
        return $text;
    }
}

Cum funcționează parametrii funcției

  • $text: șirul complet de caractere (textul inițial) pe care vrei să îl prelucrezi;
  • $numchar: numărul maxim de caractere care trebuie afișat pe pagină;
  • $wordafter: parametru opțional reprezentând sufixul atașat la finalul textului scurtat dacă acesta depășește limita (implicit două puncte ".." sau puncte de suspensie).

Exemplu practic de utilizare

$articol = "Acesta este un articol detaliat despre programarea în limbajul PHP și manipularea șirurilor de caractere.";
echo strings_more($articol, 40, "...");
// Rezultat: "Acesta este un articol detaliat despre..."

Recomandare pentru texte în limba română (UTF-8)

Dacă textele tale conțin diacritice românești (ă, â, î, ș, ț) sau alte caractere speciale UTF-8, este recomandat să folosești echivalentele multibyte mb_substr() și mb_strlen(), pentru a preveni trunchierea incorectă a caracterelor codificate pe mai mulți octeți.

Lasă un comentariu