-
-
Save marcosbrasil/2965881 to your computer and use it in GitHub Desktop.
<?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)); |
Um melhoramento no código, por questão de caracteres especiais no texto.
= $limite ) { $texto = mb_substr($texto, 0, mb_strrpos(mb_substr($texto, 0, $limite), ' '), 'UTF-8') . '...'; return $texto; } else{ return $texto; } } // String a ser limitada $string = 'Como limitar caracteres sem cortar as palavras com PHP '; print(limitarTexto($string, $limite = 25)); ?>$stringAll = 'Lorem Ipsum é <span> simplesmente uma simulação</span> de texto da indústria tipográfica e de impressos, e vem sendo utilizado desde o século XVI, quando um impressor desconhecido pegou uma bandeja de tipos e os embaralhou para fazer um livro de modelos de tipos. Lorem Ipsum <strong>sobreviveu</strong> não só a cinco séculos, como também ao salto para a editoração eletrônica, permanecendo essencialmente inalterado. <p>Se popularizou na década de 60, quando a Letraset lançou decalques contendo passagens de Lorem Ipsum, e mais recentemente quando passou a ser integrado a softwares de editoração eletrônica como Aldus PageMaker.</p>';
function limitaTexto($string, $words = '100'){
$string = strip_tags($string);
$cont = strlen($string);
if($cont <= $words){
return $string;
}else{
$strpos = strrpos(substr($string,0,$words),' ');
return substr($string,0,$strpos).'...';
}
}
echo limitaTexto($stringAll).'
';
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)
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]
";
Muito útil sua colaboração Erick. Valeu