Î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.