Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.
Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

segunda-feira, 19 de setembro de 2011

Limitando textos com PHP


Espero que tenham gostado da nova aparência blog… Nesse novo blog eu vou postar alguns scripts prontos de PHP para vocês conhecerem novas formas de resolver os problemas do dia-a-adia.
Hoje, nesse post de abertura vou mostrar pra vocês como fazer um script que limita textos, muito usado quando você precisa exibir até X caracteres de uma frase e colocar um depois.
Vamos ao script:
01function limita_caracteres($texto$limite$quebra = true) {
02    $tamanho strlen($texto);
03
04    // Verifica se o tamanho do texto é menor ou igual ao limite
05    if ($tamanho <= $limite) {
06        $novo_texto $texto;
07    // Se o tamanho do texto for maior que o limite
08    else {
09        // Verifica a opção de quebrar o texto
10        if ($quebra == true) {
11            $novo_texto = trim(substr($texto, 0, $limite)).'...';
12        // Se não, corta $texto na última palavra antes do limite
13        else {
14            // Localiza o útlimo espaço antes de $limite
15            $ultimo_espaco strrpos(substr($texto, 0, $limite), ' ');
16            // Corta o $texto até a posição localizada
17            $novo_texto = trim(substr($texto, 0, $ultimo_espaco)).'...';
18        }
19    }
20
21    // Retorna o valor formatado
22    return $novo_texto;
23}
E aí? O que me dizem? Bem legal né?
Pra usar essa função é bem simples, você só precisa definir dois dos três argumentos dela:
1echo limita_caracteres("Esta é uma frase muito longa!", 10);
2// Irá exibir apenas os 10 primeiros caracteres da frase, cortando
3//    qualquer palavra no meio se necessário
4// Resultado: Esta é uma fras...
5
6// Você tambem pode setar a terceira opção em 'false':
7echo limita_caracteres("Esta é uma frase muito longa!", 10, false);
8// Irá até a última palavra completa antes de estourar o limite de 10
9// Resultado: Esta é uma...
O código está todo comentado, quem tiver alguma dúvida é só comentar e responderei assim que possível.

Documentação Oficial:

  • Função strlen() » Mede quantos caracteres tem uma string
  • Função trim() » Retira os espaços a esquerda e a direita de uma string
  • Função substr() » Corta uma string de X caracteres
  • Função strrpos() » Encontra a última posição (a partir do início da string) de um(ns) caractere(s) na string