Ir para conteúdo

Arquivado

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

Diéssica

[Resolvido] Limitar caracteres de titulo com reticências

Recommended Posts

Cá estou eu de novo com a minha galeria de fotos.

 

Agora estou montando com DIVs a área em que as fotos vão aparecer, e o título ficará do lado delas. Porém, como as imagens ficarão lado a lado precisarei limitar o título da foto se ele for muito grande para não ficar desproporcional.

 

Gostaria de usar uma função que permite a limitação de caracteres com reticências. Vocês devem ter entedido, mas para ser mais clara: gostaria de transformar um título grande como "Abertura do evento do dia 10.03.2011" em "Abertura do event...", não exatamente com esse número de caracteres.

 

O código que desejo aplicar a função é este:

<?php echo $row_rsFotos['Desc']; ?>

 

Esse é o título da imagem e gostaria de limitar os caracteres caso ele for maior que "X".

 

Como aplicar esta função?

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza,

 

Tenta desta forma:

 


 $tamMax = 30;
 if(strlen($row_rsFotos['Desc']) > $tamMax) 
      echo substr($row_rsFotos['Desc'], 0, $tamMax) . '...';
 else
      echo $row_rsFotos['Desc'];   

Compartilhar este post


Link para o post
Compartilhar em outros sites

substr()

 

http://php.net/substr

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode especificar mais de acordo com meu código?

 

Eu especifiquei com o código que você enviou:

 

a função strlen() conta a quantidade de letras do titulo, se essa quantidade de letras ultrapassar o tamanho máximo do titulo é usado a função substr() para pegar uma quantidade especifica de letras até o tamanho especificado e adicionado '...' no final.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu especifiquei com o código que você enviou:

 

a função strlen() conta a quantidade de letras do titulo, se essa quantidade de letras ultrapassar o tamanho máximo do titulo é usado a função substr() para pegar uma quantidade especifica de letras até o tamanho especificado e adicionado '...' no final.

 

Obrigada. Então eu devo adicionar esse código antes do "echo" com o título da foto da galeria?

<?php
 $tamMax = 30;
 if(strlen($row_rsFotos['Desc']) > $tamMax) 
      echo substr($row_rsFotos['Desc'], 0, $tamMax) . '...';
 else
      echo $row_rsFotos['Desc'];
?>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica posso dar a minha opinião?

Recomendo acessar o link que o William passou. Notei que você não tem muita experiência com PHP (desculpe se eu estiver errado), portanto seria mais aproveitável para você testar a função (substr) por conta própria. Use o código do Wesley como uma referência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diéssica posso dar a minha opinião?

Recomendo acessar o link que o William passou. Notei que você não tem muita experiência com PHP (desculpe se eu estiver errado), portanto seria mais aproveitável para você testar a função (substr) por conta própria. Use o código do Wesley como uma referência.

 

Esse é o meu primeiro sistema do zero. Tudo o que eu não consigo entender do manual do php.net eu venho pra cá e tento solucionar meu problema. Só gostaria de um código para eu poder me basear.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Diéssica

 

Veja este exemplo simples.

 

PHP :seta: substr

 

<?php

$string = 'Algum texto para ser usado como teste!';

echo substr( $string, 0, 32 ), '...';

// Algum texto para ser usado como ...

 

Caso tenha dúvidas, não deixe de perguntar :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isto que quero. Porém, como adaptar? Como adaptar essa "string" ao meu código?

 

<?php echo $row_rsFotos['Desc']; ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php echo substr( $row_rsFotos['Desc'], 0, 32 ), '...'; ?>

 

você não viu o post do @Wesley David ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido!

 

Só adaptei de

echo $row_rsAlbuns['Desc'];

 

para

echo substr( $row_rsAlbuns['Desc'], 0, 10 ), '...';

 

 

Não precisei de nenhum outro código.

 

Dei uma lida sobre substr também.

 

Nem sei porque nem vi mesmo, pura ignorância minha.

 

Obrigada Carlos, Wesley, William e Lucas!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui deu ruim
echo substr( $string, 0, 32 ), '...';

Vou dar um exemplo de algo parecido de como eu fiz:
$var_texto = $banco_texto;
$var_texto_cort = substr( $var_texto, 0, 15). '...';

echo $var_texto_cort;

O lance está no final, direto em virgula estava causando erro, é só concatenar
no lugar da virgula coloque um ponto.
________

$texto = "QUALQUER COISA AAA A A A A A";
$texto_corta = substr($texto, 0, 15) . "...";

0 é a linha inicial e 15 é o máximo de amostragem, concatenou com um PONTO antes do "..." e foi
Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse post é meio velho mas.. vou te dar uma função prontinha..

<?Php
function short($a,$z = ''){
     $b=substr($a,0,$z);if(strlen($a)>$z)$b.='..';
     return strip_tags($b);
}
?>


Basta você usar Assim:

<?Php
echo short('texto aqui', 25);
?>

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.