Agregando conhecimento…
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); // |
Página para publicar e armazenar conteúdo relacionado a Desenvolvimento Web:
PHP, MySQL, Javascript, JQuery, CSS e as novas tecnologias do momento.
Façam comentários, perguntas e sugestões que ficarei satisfeito por recebê-los.
Shiguenori Junior
Alan Silva de Albuquerque
agosto 26th, 2011 at 13:13
Olá Junior tenho um mais simples e que aceita as tags html, dá uma olhada ai blz. goistei do teu script.
class Limit
{
// public static function limitar($text,$quan)
public function limitar($text,$quan)
{
$limita = substr($text,0,$quan);
$contar = strlen($limita);
$limita2 = substr($text,$contar,20);
$espaco = strpos($limita2, ” “);
$limitando = $contar + $espaco;
echo substr($text,0,$limitando); //mostra o texto sem cortes
}
}
$texto = “Olá meu nome é alan albuquerque estou me tornando um php developer”;
//echo Limit::limitar($texto,34).”…”; no caso de function estatica
$l = new Limit(); // instancia a classe Limit
echo $l->limitar($texto,40).”…”; // pegamos o método limitar e passamo os parametros.
Usei orientação a objetos, mais também dá para fazer sem.
Valeu
Junior
agosto 30th, 2011 at 19:11
@Alan Silva de Albuquerque desculpe perguntar mas como é tratado as tags html? Exemplificando minha dúvida:
echo $l->limitar(‘<b style=”color:#000;”>teste</b>’,4);
ro
janeiro 5th, 2012 at 1:19
Mto bom! Obrigado!
Douglas
março 8th, 2012 at 17:06
e tipo cara: minhas frases vem do banco.
criei um recordset, e onde tá a frase no seu exemplo, pus o campo que aparecerá, no caso:
ficando assim: $frase = “$row_Recordset1['tituloPost']“;
só q ñ ta dando certo. alguém pode me dá uma força.
valeu galera
Junior
março 11th, 2012 at 18:42
@Douglas primeiro tenta implementar com texto estático. Você colocou a função no mesmo arquivo? Coloca seu código no pastie.org e manda o link, daí agente analisa o que pode estar dando errado.