Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Gostaria de saber como encurtar um título de uma determinada tabela. Vou dar para ficar mais fácil de vocês entenderem ;)
Eu tenho uma tabela chamada noticias dentro desta tabela tenho o titulo, texto, categoria, usuario...
Eu quero que meu título quando for exibido em determinada página mostre no máximo 15 caracteres e depois apareça 3 pontinhos(...).
Obrigado...
<?php
function SuperSubstr($txt,$n){
//Verifica se o tamanho da string é maior que o limite de caracteres
if(strlen($txt)>$n){
//Caso positivo ele limita a string e coloca os "treis pontos"
$txt = substr($txt,0,$n)."...";
}
//Retorna a string
return $txt;
}
$myString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In dolor neque, pharetra non ultricies egestas, volutpat eget sapien. Mauris mollis sodales nisi, vitae suscipit augue facilisis quis. Curabitur in sem urna, vitae porttitor ligula. Aliquam semper orci eu ipsum imperdiet dapibus. Donec gravida tortor ut nisl bibendum accumsan. Aenean a risus nulla, lacinia adipiscing nunc. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis feugiat urna lobortis sapien lacinia sodales. Fusce sit amet massa eget nisl luctus commodo nec ultrices quam. Pellentesque dictum nisl quis sapien ullamcorper vestibulum. Proin venenatis magna eu elit varius tristique ac eu metus. Fusce vel justo lacus. Pellentesque eleifend sodales sodales. Maecenas a nisi sed sem volutpat accumsan at nec est. Mauris dui elit, pellentesque nec pharetra quis, accumsan eget mauris. Proin tristique turpis nec lorem luctus bibendum. Etiam id nunc neque, sed sodales lacus.";
echo SuperSubstr($myString, 100);
?>senartes, veja a situação constrangedora que essa sua função pode colocar o usuário que lê isso, por exemplo:
$myString = "Entao, a inocente menininha, aceita tomar no cantinho da escada, um copo de limonada oferecida pelo seu querido vizinho";
echo SuperSubstr($myString, 46);
Saída:
Entao, a inocente menininha, aceita tomar no c...
Pega mal não?
Esse encurtador deve pensar nessas situações para que não se torne um incômodo desnecessário:
function truncate( $string, $length, $truncateAfter = FALSE, $truncateString = '...' ) {
if( strlen( $string ) <= $length ) {
return $string;
}
$position = ( $truncateAfter == FALSE ? strrpos( substr( $string, 0, $length ), ' ' ) :
strpos( substr( $string, $length ), ' ' ) + $length );
return substr( $string, 0, $position ) . $truncateString;
}
Saída:
Entao, a inocente menininha, aceita tomar no...
Ainda fica estranho, mas não dá dúbias interpretações.
Se o parâmetro $truncateAfter for TRUE, a função vai acompanhar a string até o primeiro espaço após a quantidade de caracteres determinada em $length, fazendo aparecer uma palavra a mais.
Se for FALSE, vai cortar a string no primeiro espaço anterior à string, fazendo aparecer uma palavra a menos.
substr()
http://php.net/substr