mb_strimwidth în PHP

Scurtează un text la o lățime dată și adaugă un marcaj la final, de exemplu „…”.

Sintaxă
mb_strimwidth(string $string, int $start, int $width, string $trim_marker = '', ?string $encoding = null): string

Ce face mb_strimwidth

mb_strimwidth taie textul astfel încât rezultatul, inclusiv marcajul $trim_marker, să nu depășească $width. Dacă textul încape, este returnat neschimbat, fără marcaj.

Lățimea se măsoară ca la mb_strwidth: pentru texte în română, o literă (cu sau fără diacritice) înseamnă 1. Este o metodă rapidă de a scurta titluri în liste.

Parametri

Parametru Descriere
$string Textul scurtat.
$start Poziția de început, în caractere.
$width Lățimea maximă a rezultatului, inclusiv marcajul.
$trim_marker Opțional. Textul adăugat când se taie, de exemplu "…".
$encoding Opțional. Codarea textului.

Ce returnează

Textul scurtat.

Exemple

Exemplul 1: Titluri scurtate la 20 de caractere

<?php
$titluri = ["Învățăm șiruri de caractere în PHP", "Funcții utile", "Ghid MySQL pentru începători"];

foreach ($titluri as $titlu) {
    echo mb_strimwidth($titlu, 0, 20, "…") . "\n";
}

Rezultat

Învățăm șiruri de c…
Funcții utile
Ghid MySQL pentru î…

Greșeli frecvente

  • Te aștepți ca marcajul să fie adăugat după cele $width caractere. Marcajul intră în lățime: cu $width = 20 și "..." rămân 17 caractere din text.

Comenzi înrudite

  • mb_substr: Extrage o bucată dintr-un text după poziții în caractere, fără să strice diacriticele.
  • mb_strwidth: Returnează lățimea de afișare a unui text: caracterele asiatice late contează dublu.
  • wordwrap: Împarte un text lung pe mai multe rânduri, fără să rupă cuvintele.