Esta função limita uma string a uma determinada quantidade de caracteres e evita o corte de uma palavra, suprimindo-a da string. Caso a string tenha mais caracteres que o limite informado, é adicionado reticências (…) ao final da string. Se a string começar com uma palavra maior que o limite de caracteres, irá retornar apenas as reticências.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function cortaFrase($frase, $qtde_letras = 12)
{
   /*
    *
    * $frase = string com o conteúdo a ser formatada
    * $qtde_letras = quantidade de caracteres máximo
    *
    *
    * OBS:
    * CONSIDERAR A RETICÊNCIAS ADICIONADA CASO A STRING
    * SEJA MAIOR QUE A QUANTIDADE MÁXIMA DE CARACTERES
    *
    */
 
   $p = explode(' ', $frase);
   $c = 0;
   $cortada = '';
 
   foreach($p as $p1){
      if ($c<$qtde_letras && ($c+strlen($p1) <= $qtde_letras)){
         $cortada .= ' '.$p1;
         $c += strlen($p1)+1;
      }else{
         break;
      }
   }
 
   return strlen($cortada) < $qtde_letras ? $cortada.'...' : $cortada;
}
 
 
$frase = "O rato roeu a roupa do rei de roma";
 
// LEMBRAR DE RETIRAR CÓDIGOS HTML CASO NECESSÁRIO cortaFrase(strip_tags($frase))
echo cortaFrase($frase);
 
//