Publicidade (Anuncie Aqui)

Limitando textos

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:

function limita_caracteres($texto, $limite, $quebra = true) {
    $tamanho = strlen($texto);

    // Verifica se o tamanho do texto é menor ou igual ao limite
    if ($tamanho <= $limite) {
        $novo_texto = $texto;
    // Se o tamanho do texto for maior que o limite
    } else {
        // Verifica a opção de quebrar o texto
        if ($quebra == true) {
            $novo_texto = trim(substr($texto, 0, $limite)).'...';
        // Se não, corta $texto na última palavra antes do limite
        } else {
            // Localiza o útlimo espaço antes de $limite
            $ultimo_espaco = strrpos(substr($texto, 0, $limite), ' ');
            // Corta o $texto até a posição localizada
            $novo_texto = trim(substr($texto, 0, $ultimo_espaco)).'...';
        }
    }

    // Retorna o valor formatado
    return $novo_texto;
}

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:

echo limita_caracteres("Esta é uma frase muito longa!", 10);
// Irá exibir apenas os 10 primeiros caracteres da frase, cortando
//    qualquer palavra no meio se necessário
// Resultado: Esta é uma fras...

// Você tambem pode setar a terceira opção em 'false':
echo limita_caracteres("Esta é uma frase muito longa!", 10, false);
// Irá até a última palavra completa antes de estourar o limite de 10
// 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

Você também vai gostar de ler:

Postado em PHP, Tutoriais

Com as tags , , , ,

Escrito por Thiago Belem

Gostou desse artigo?

Não se esqueça de assinar o RSS e divulgue-o para o mundo:

  • Ricardo Nascimento

    Muito bom! Já esta adicionado nos meus favoritos…

  • Ricardo Nascimento

    Muito bom! Já esta adicionado nos meus favoritos…

  • Fernando Souza

    Show de bola, com certeza esta é uma dúvida de muita gente…

  • Fernando Souza

    Show de bola, com certeza esta é uma dúvida de muita gente…

  • leonardo

    Muito bom o script! Eu estou começando a desenvolver sites com php+mysql agora e este será um recurso fundamental para estes! Congratulations

  • leonardo

    Muito bom o script! Eu estou começando a desenvolver sites com php+mysql agora e este será um recurso fundamental para estes! Congratulations

  • Claudio Myst

    Shoe de bola até mesmo para aprender melhor como fazer nossas próprias funções pois está super bem comentado e o entendimento ficom bem simples.

    Valeu.

  • Claudio Myst

    Shoe de bola até mesmo para aprender melhor como fazer nossas próprias funções pois está super bem comentado e o entendimento ficom bem simples.

    Valeu.

  • http://programadriano.wordpress.com thiago da silva adriano

    Bom dia Amigo ! muito bom seu post, mas para funcionar o primeiro if de validação, if ($tamanho >= $limite) tem que setar como if ($tamanho <= $limite) senao nao entra na validação de lenght …

  • http://programadriano.wordpress.com thiago da silva adriano

    Bom dia Amigo ! muito bom seu post, mas para funcionar o primeiro if de validação, if ($tamanho >= $limite) tem que setar como if ($tamanho <= $limite) senao nao entra na validação de lenght …

  • http://blog.thiagobelem.net/ Thiago Belem

    @Thiago
    Obrigado pela dica! Vou mudar o script.. :)

  • http://thiagobelem.net/ Thiago Belem

    @Thiago
    Obrigado pela dica! Vou mudar o script.. :)

blog comments powered by Disqus