fala galera, td tranquilo?
me desculpem caso já tenha algo sobre isso no fórum, não consegui achar pela busca
eu quero exibir por exemplo as 150 primeiras letras de uma frase, porém que não corte a última palavra no meio, mostrando assim no mínimo 150 (ou no máximo, desde que não fique palavra pela metade, tanto faz) exemplo:
$variavel = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
as primeiras 150 letras seriam "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam", que neste caso por coincidencia deu 150 letras, mas caso não desse, alguém sabe como eu posso fazer?
obs: se fosse "." "!" ou "?" gostaria que aparecesse, se fosse "," não.
seria para aparecer uma pequena introdução do texto maior, colocando depois um link como "leia mais..."
espero que alguem possa me ajudar
muito obrigado!
Exibir 150 Primeiras Letras
Started By knoxville, 08/04/2009, 19:35
3 replies to this topic
#2
Posted 08/04/2009, 22:09
wordwrap();
Sobre pontos de exclamação e etc, você poderia verificar antes se o texto possui alguma valor aproximado a 150, 160 ou 140, caso sim, ele não corta... '-'
Sobre pontos de exclamação e etc, você poderia verificar antes se o texto possui alguma valor aproximado a 150, 160 ou 140, caso sim, ele não corta... '-'
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."
Muito Obrigado à todos do fórum, e à toda equipe do fórum!
#3
Posted 08/04/2009, 22:14
Boa Noite.
Vê se isso já lhe ajuda: http://forum.wmonlin...o...st&p=898452
Sobre a virgula, eu acho muito exagero isso (entendo seu lado de programador), mas enfim, são raros os casos que isso acontece, mas é só melhorar a função.
Caminha das pedras tá dado!
[]'s
Vê se isso já lhe ajuda: http://forum.wmonlin...o...st&p=898452
Sobre a virgula, eu acho muito exagero isso (entendo seu lado de programador), mas enfim, são raros os casos que isso acontece, mas é só melhorar a função.
Caminha das pedras tá dado!
[]'s
#4
Posted 09/04/2009, 11:20
mto obrigado lwirkk, mto obrigado savior!
segui o link do savior e deu certo!
fiz uma pequena adaptação pra tirar o último digito caso seja uma virgula, e também o htmlentities, porque tava dando problema com acentos e tal
segue o code, comentem por favor, caso saibam uma forma melhor de fazer isto!
*obs1: coloquei um replace na virgula pra ter o espaço antes pois quando caia na virgula, ele tirava a palavra inteira, o que não é nem o maior problema. o maior problema é que pra tirar esta palavra ele caia em varios whiles, tornando o script lento.
*obs2: QUE FALTA FAZ UM GOTO NO PHP, NÃO?!?! hehe
obrigado!
segui o link do savior e deu certo!
fiz uma pequena adaptação pra tirar o último digito caso seja uma virgula, e também o htmlentities, porque tava dando problema com acentos e tal
segue o code, comentem por favor, caso saibam uma forma melhor de fazer isto!
<?php function str_truncate($str, $length, $rep){ $str = str_replace(',', ' ,', $str); while ($virgula != "nao") { if(strlen($str)<=$length) return $str; $oc = ($rep == 0) ? (strrpos(substr($str,0,$length),' ')) : (strpos(substr($str,$length),' ') + $length); $str = (strlen($str) > $length) ? substr($str, 0, $oc). '...' : $str; if (substr($str, (strlen($str) - 1), strlen($str)) == ",") { $length = $length-1; } else { $virgula = "nao"; } } $str = (strlen($str) > $length) ? substr($str, 0, $oc). '...' : $str; return str_replace(' ,',',', $str); } $variavel = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."; echo str_truncate($variavel, 150, 1)."<br />"; ?>
*obs1: coloquei um replace na virgula pra ter o espaço antes pois quando caia na virgula, ele tirava a palavra inteira, o que não é nem o maior problema. o maior problema é que pra tirar esta palavra ele caia em varios whiles, tornando o script lento.
*obs2: QUE FALTA FAZ UM GOTO NO PHP, NÃO?!?! hehe
obrigado!
Edição feita por: knoxville, 09/04/2009, 12:13.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)