Ir para conteúdo

POWERED BY:

Arquivado

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

Weikm@n

[Resolvido] Função Resumo

Recommended Posts

Olá a todos, gostaria q melhorar esse codigo,

function resumo($string,$chars) {
       if (strlen($string) > $chars) {
               $var='0';
               while($var == '0'){
                       if( (substr($string,$chars,1)) == ' '){
                               $var='1';
                       } else{
                               $chars++;
                       }  
               }
       }
       return substr($string,0,$chars);
}

<?php echo resumo(('texto aki'),20) ?>

peguei ele aki no site mesmo, no

 

http://forum.imasters.com.br/index.php?/topic/197740-funcao-de-resumo/

 

ele serve pra reduzir o texto sem corta a palavra, porem ele nao adiciona os 3 pontinhos, gostaria de saber como faço essa alteracao para q o codigo funcione. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse aqui eu tb peguei aqui no forum.

 

testa ai

 

<?php

$texto = "O rato roeu a roupa do rei de Roma.";
$texto = explode(" ", substr($texto, 0, 25));
if(count($texto) > 1) array_pop($texto);
$texto = implode(" ", $texto)."...";
echo $texto;
// retorna: O rato roeu a roupa do...

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olah amigo, essa funcao nao corta a palavra no meio, entretando se o meu texto tiver somente 10 caracteres e o limite for 20, ele mostra do mesmo jeito os 3 pontinhos, e o q eu quero eh q somente apareça se ultrapassar o limite,

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim:

 

<?php

function resumo($string,$chars) {

     if(strlen($string) > $chars) {
     
          $string = trim(substr($string,0,$chars));

          $string .= "...";
          
     }
     
     return $string;

}

echo resumo("O rato roeu a roupa do rei de roma",20);

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

RobertoPC, esse codigo jah conhecia, mas ele corta a palavra, o q eu postei lah em cima nao corta, mas nao mostra os 3 pontinhos, nao tm como soh acrecentar os tres pontinhos se passar do limite? e nao acrescentar caso nao passe do limite.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hummm, entendi. O corta palavra que você diz é ser for uma palavra "exemplo" e na hora imprimir "exem". Se for isso tá aew a modificação no código:

 


<?php

// Função antiga
function resumo1($string,$chars) {

     if(strlen($string) > $chars) {

          $string = trim(substr($string,0,$chars));

          $string .= "...";
          
     }
     
     return $string;

}

// Função nova
function resumo2($string,$chars) {

     if(strlen($string) > $chars) {
          
          $string_aux = substr($string,$chars);
          
          $string = substr($string,0,$chars);
          
          $string_split = str_split($string_aux);
                    
          $c = 0;       
          
          while($c<=count($string_split)){
                    
               if($string_split[$c] == " "){

                    break;
               
               }
               
               $string .= $string_split[$c];
         
               $c++;
          
          }        

          $string .= "...";
          
     }
     
     return $string;

}

echo resumo1("O rato roeu a roupa do rei de roma",17);
echo"<br>";
echo resumo2("O rato roeu a roupa do rei de roma",17);

?>

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.