Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaogil

delimitar tamanho de String sem quebrar palavra

Recommended Posts

Como faço pra delimitar o tamanho de String (uma frase) sem quebrar palavras ?

Por ex.:

 

$STRING = "A casa é grande";
Aí eu delimito a string em apenas 11 caracteres:

Em vez de ficar assim:

 

"A casa é gr" (com a palavra grande quebrada)

 

Ficaria assim:

 

"A casa é" (sem a palavra grande quebrada)

 

???

Compartilhar este post


Link para o post
Compartilhar em outros sites

(...) será que não exite algo + simples ?

<{POST_SNAPBACK}>

Opa galera. Acabei de criar este script para aquilo que o joaogil pediu.

 

PHP

[*]<?php

[*]

[*] /*

[*] -------------------------

[*]   |Função reduzString() |

[*]   |por Renato Azevedo |

[*]   |24 de Abril de 2005  |

[*] -------------------------

[*] */

[*]

[*]

[*] $string = "Como faço pra delimitar o tamanho de String (uma frase) sem quebrar palavras ??";

[*] 

[*] function reduzString ($str, $limite) {

[*]

[*]  if(!is_string($str))

[*] return false; 

[*]  if(!is_int($limite))

[*] return false; 

[*]  if($limite <= 0)

[*] return ""

[*]  else if ($limite > strlen($str))

[*] return false;

[*]  else if($limite == strlen($str))

[*] return $str;

[*]

[*] $novaStr = substr($str,0,($limite+1));

[*] $tmpStr = $novaStr;

[*]

[*] $cont = substr_count($novaStr,' ');

[*] $pos = 0;

[*]

[*]  for($i=0;$i<$cont;$i++) {

[*]

[*] $pos = strpos($tmpStr,' ');

[*] $tmpStr[$pos] = '*';

[*]

[*]  }

[*]

[*] $novaStr = substr($novaStr,0,$pos);

[*]

[*]   return $novaStr;

[*]

[*] }

[*]

[*] // Testando função reduzString();

[*]

[*] echo "String Original: "."<b>".$string."</b>"."<br>";

[*] echo "Tamanho string original: ".strlen($string)."<p>";

[*]

[*]

[*] for($tamanho=4;$tamanho <= strlen($string);$tamanho++) {

[*]

[*] echo "Limitando a string em <b>".$tamanho."</b> caracteres...<p>";

[*]  $reduzida = reduzString($string,$tamanho);

[*]

[*]  echo "<p>Nova String: "."<b>".$reduzida."</b>"."<br>";

[*]  echo "Tamanho da String reduzida: ".strlen($reduzida)."<p>";

[*]

[*] }

[*] 

[*]?>

 

A função reduzString() tem dois parâmetros e dois tipos de retorno:

 

Parâmetros: $str:String, $limite:Integer

Retornos: false, se os parâmetros estiverem incorretos;

uma string reduzida caso os parâmetros forem passados corretamente; retornando uma string vazia caso $limite for negativo;

 

Dúvidas, críticas ou sugestões,

 

renato_anything@yahoo.com.br

 

 

 

falows; http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até agora eu não precisei usar essa função, mas vou precisar e então vou testá-la, Obrigado !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kara belo script, posta ele tbm no lab de scripts...se sempre que tiver algo posta lá...a comunidade agradece...abraçosMarcio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.