Skip to content

Instantly share code, notes, and snippets.

@marcosbrasil
Created June 21, 2012 13:54
Show Gist options
  • Save marcosbrasil/2965881 to your computer and use it in GitHub Desktop.
Save marcosbrasil/2965881 to your computer and use it in GitHub Desktop.
FUnção PHP para limitar texto sem cortar palavras
<?php
function limitarTexto($texto, $limite){
$texto = substr($texto, 0, strrpos(substr($texto, 0, $limite), ' ')) . '...';
return $texto;
}
// String a ser limitada
$string = 'Como limitar caracteres sem cortar as palavras com PHP';
// Mostrando a string limitada em 25 caracteres.
print(limitarTexto($string, $limite = 25));
@Cah0s
Copy link

Cah0s commented Aug 29, 2016

Acho que assim ta melhor pra se usar

function limitarTexto($texto, $limite, $quebrar = true){
  //corta as tags do texto para evitar corte errado
  $contador = strlen(strip_tags($texto));
  if($contador <= $limite):
    //se o número do texto form menor ou igual o limite então retorna ele mesmo
    $newtext = $texto;
  else:
    if($quebrar == true): //se for maior e $quebrar for true
      //corta o texto no limite indicado e retira o ultimo espaço branco
      $newtext = trim(mb_substr($texto, 0, $limite))."...";
    else:
      //localiza ultimo espaço antes de $limite
      $ultimo_espaço = strrpos(mb_substr($texto, 0, $limite)," ");
      //corta o $texto até a posição lozalizada
      $newtext = trim(mb_substr($texto, 0, $ultimo_espaço))."...";
    endif;
  endif;
  return $newtext;
}

limitarTexto($conteudo, 100); ou pode setar FALSE também limitarTexto($conteudo, 100, FALSE)

@RenivalNeto
Copy link

RenivalNeto commented Jul 22, 2018

Aproveitando a parte que sobrou

function limitarTexto($texto, $texto2, $limite){
$contador = strlen($texto);
$texto2 = $texto;
if ( $contador >= $limite ) {
$texto = mb_substr($texto, 0, strrpos(mb_substr($texto, 0, $limite), ' '), 'UTF-8') . '...';
$contador2 = strlen($texto);
$resto = $contador - $contador2;
$texto2 = substr($texto2, ($contador2-2), ($resto+1));
return $texto.$texto2;
}
else{
return $texto.$texto2;
}
}
// String a ser limitada
$string = 'Como limitar caracteres sem cortar as palavras com PHP ';
$resultado = (limitarTexto($string, $texto2, $limite = 42));
$partes = explode('...', $resultado);
echo "
resultado = $partes[0]
$partes[1]
";

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment