Ir para conteúdo

Arquivado

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

Jugleni Jr

limitar o tamanho do titulo por palavras.

Recommended Posts

Pessoal estou precisando de um mãozinha;

criei um pequeno sistema de noticias e estou precisando limitar o tamanho do titulo, não poderá ser por letra e sim por palavras, estilo

 

Esta assim:

__________________________________

aconteceu esta manha um grande festival |

na grande sp. |

__________________________________|

Preciso ser assim:

___________________________________

aconteceu esta manha um grande festival ...|

___________________________________|

 

Apos ele determinar a quantidade de palavra que poderá aparecer acrescentar ... ( 3 pontos)

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que contar o número de palavras não vai resolver seu problema, suponha que você limite para três palavras, e tenha estas duas frase:

 

1- Aconteceu um festival...

2- Paralelepipedos são pesados...

 

Note que as duas frases tem o mesmo número de palavras, mas tamanhos diferentes, aí talvez seja melhor você usar strlen.

 

Se quiser veja http://br.php.net/manual/pt_BR/function.strlen.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que contar o número de palavras não vai resolver seu problema, suponha que você limite para três palavras, e tenha estas duas frase:

 

1- Aconteceu um festival...

2- Paralelepipedos são pesados...

 

Note que as duas frases tem o mesmo número de palavras, mas tamanhos diferentes, aí talvez seja melhor você usar strlen.

 

Se quiser veja http://br.php.net/manual/pt_BR/function.strlen.php

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

desenvolvi este:

 

<?

function resumir22($texto,$limite,$tres_p = '...'){

  if(strlen(" ".strip_tags($texto))<=$limite){

  $tres_p = "";

  $retornar = $texto;

  }else{

  $texto = str_replace("

  $texto = str_replace("

  $vetor = explode(" ",$texto);

  $total = 0;

  $retornar = "";

    for($i=0;$i

    $total += strlen(" ".strip_tags($vetor[$i]));

    if($total<=$limite){

    $retornar .= " ".str_replace("

    }else{

    break;

    }

    }

  }

  return trim($retornar).$tres_p;

}

 

$texto = "no non nonn sis isi si, www outono, verão, primavera, inverno, janeiro, abril";

$limite = 30;

echo resumir22($texto,$limite);

?>

ele conta caracter por caracter e se por exemplo o limite for no meio de uma palavra ele não corta a palavra, e se o texto tiver códigos HTML de formatação de texto ele não os elimina e tb não inclui na contagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

desenvolvi este:

 

 

<?

function resumir22($texto,$limite,$tres_p = '...'){

  if(strlen(" ".strip_tags($texto))<=$limite){

   $tres_p = "";

   $retornar = $texto;

  }else{

   $texto = str_replace("<font ","<font",$texto);

   $texto = str_replace("<div ","<div",$texto);

   $vetor = explode(" ",$texto);

   $total = 0;

   $retornar = "";

    for($i=0;$i<sizeof($vetor);$i++){

     $total += strlen(" ".strip_tags($vetor[$i]));

     if($total<=$limite){

     $retornar .= " ".str_replace("<div","<div ",str_replace("<font","<font ",$vetor[$i]));

     }else{

     break;

     }

    }

  }

  return trim($retornar).$tres_p;

}

 

$texto = "no non <font color=ff0000>nonn</font> sis isi si, <b>www</b> outono, verão, primavera, inverno, janeiro, abril";

$limite = 30;

echo resumir22($texto,$limite);

?>

ele conta caracter por caracter e se por exemplo o limite for no meio de uma palavra ele não corta a palavra, e se o texto tiver códigos HTML de formatação de texto ele não os elimina e tb não inclui na contagem

Muito 10.

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.