Destino 0 Denunciar post Postado Novembro 12, 2004 Olá pessoal, :D Tudo bem, estou tentando limitar a exibição de uma descrição de um produto com o fim com "...", mas não tenho a mínima idéia de como fazer :blink: , espero que possam me ajudar, desde já muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Novembro 12, 2004 http://br.php.net/substr Compartilhar este post Link para o post Compartilhar em outros sites
andrearruda 0 Denunciar post Postado Novembro 12, 2004 tem essa funcao: PHP [/tr][tr]<?function iniTag($palavra){ $contaPal = strlen($palavra); for($i=0; $i<$contaPal; $i++){ if($palavra[$i]=="<"){ $achou = "1"; $i = $contaPal; }else{ $achou = "0"; } } return $achou; } function fimTag($palavra){ $contaPal = strlen($palavra); for($i=0; $i<$contaPal; $i++){ if($palavra[$i]==">"){ $achou = "1"; $i = $contaPal; }else{ $achou = "0"; } } return $achou; } function cortaTexto($string,$corte){ $palavra = explode(" ",$string); $totalPalavras = count($palavra); $incrementa = ""; for($i=0; $i<$corte; $i++) { $iniTag = iniTag($palavra[$i]); if($iniTag=="1"){ $palavraTag = $i+1; $abreTag = $i; while($palavraTag<$totalPalavras){ $fimTag = fimTag($palavra[$palavraTag]); if($fimTag=="1"){ $fechaTag = $palavraTag; $palavraTag=$totalPalavras; }else{ $palavraTag++; } } for($ac=$abreTag; $ac<$fechaTag+1; $ac++){ $tag .= $palavra[$ac]." "; } $tag = trim($tag); $tagEsp = count(explode(" ",trim($tag)))-1; $corte = $corte+$tagEsp; } $incrementa .= $palavra[$i]." "; } return trim($incrementa)."..."; } $texto = "<font face='verdana' size='1'>1 2 3 4 5 6<font> 7 8 9 10"; print cortaTexto($texto,'100'); ?>[/tr] Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Novembro 12, 2004 tem essa funcao: PHP [/tr][tr]<?function iniTag($palavra){ $contaPal = strlen($palavra); for($i=0; $i<$contaPal; $i++){ if($palavra[$i]=="<"){ $achou = "1"; $i = $contaPal; }else{ $achou = "0"; } } return $achou; } function fimTag($palavra){ $contaPal = strlen($palavra); for($i=0; $i<$contaPal; $i++){ if($palavra[$i]==">"){ $achou = "1"; $i = $contaPal; }else{ $achou = "0"; } } return $achou; } function cortaTexto($string,$corte){ $palavra = explode(" ",$string); $totalPalavras = count($palavra); $incrementa = ""; for($i=0; $i<$corte; $i++) { $iniTag = iniTag($palavra[$i]); if($iniTag=="1"){ $palavraTag = $i+1; $abreTag = $i; while($palavraTag<$totalPalavras){ $fimTag = fimTag($palavra[$palavraTag]); if($fimTag=="1"){ $fechaTag = $palavraTag; $palavraTag=$totalPalavras; }else{ $palavraTag++; } } for($ac=$abreTag; $ac<$fechaTag+1; $ac++){ $tag .= $palavra[$ac]." "; } $tag = trim($tag); $tagEsp = count(explode(" ",trim($tag)))-1; $corte = $corte+$tagEsp; } $incrementa .= $palavra[$i]." "; } return trim($incrementa)."..."; } $texto = "<font face='verdana' size='1'>1 2 3 4 5 6<font> 7 8 9 10"; print cortaTexto($texto,'100'); ?>[/tr] Ixiiiiiii, pra q td isso?!?! hehehe Compartilhar este post Link para o post Compartilhar em outros sites
andrearruda 0 Denunciar post Postado Novembro 12, 2004 esta funcao corta por espacos " " e no meio das <tag> sempre tem espacos<img src="#" border="" alt=""> so nesta teria 3 espacos, q seria contabilizado e sem necessidade!!! Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Novembro 12, 2004 Sem necessidade?!?! A questão do Tópico é apenas cortar uma string, só isso q ele pediu... ^_^ . O q pode ser util é se estabelecer um valor máximo e quebrar a string, se estiver no meio de uma palavra continuar até o espaço e ai sim quebrar, parar está, assim evita palavras cortadas, agora analizar código html... ;) você pode resumir mto seu código com preg_match. :rolleyes: Mas, enfim é um exemplo a mais... ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
Leandru 0 Denunciar post Postado Novembro 12, 2004 você PODE USAR O SUBSTR POR EXEMPLO, $variavel = "SEU TEXTO AQUI"; echo substr($variavel,0,3)."..."; O substr quebra a string (neste caso, a partir da primeira posição até a terceira) No final, você concatena com três pontos. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites
andrearruda 0 Denunciar post Postado Novembro 12, 2004 that's ok!!! Sorry Compartilhar este post Link para o post Compartilhar em outros sites
Destino 0 Denunciar post Postado Novembro 13, 2004 Valeu caros amigos, vou dar uma estudada nisso, muito obrigado por tudo, espero um dia poder estar ajudando os aoutros como vocês, valeu michelsp e desculpa a confusão, lembra ? Compartilhar este post Link para o post Compartilhar em outros sites
Destino 0 Denunciar post Postado Novembro 13, 2004 Caras você citaram acima e é muito interresante, como posso limitar pelo espa~ço em branco ? Compartilhar este post Link para o post Compartilhar em outros sites
klawdyo 0 Denunciar post Postado Novembro 13, 2004 mas nesse substr aí tem o seguinte: se o texto for menor que o limite da string, "..." aparecerá do mesmo jeito. Eu sugiro assim: PHP [/tr][tr]echo substr($texto,0,20); if(strlen($texto)>20){echo"...";} [/tr] Compartilhar este post Link para o post Compartilhar em outros sites
LegionInvader 0 Denunciar post Postado Novembro 14, 2004 Olá pessoal, :D Tudo bem, estou tentando limitar a exibição de uma descrição de um produto com o fim com "...", mas não tenho a mínima idéia de como fazer :blink: , espero que possam me ajudar, desde já muito obrigado. Nossa Cara, passaram uns trecos gigantescos, usa isso: PHP [/tr][tr]<?php echo ( strlen($row...['camp']) > TAMANHOMAXIMO ? substr($row...['camp'],0,TAMANHOAEXIBIR)."..." : $row...['camp']) ?> [/tr] Espero ter sido útil. Compartilhar este post Link para o post Compartilhar em outros sites