Aí, galera.
Abaixo mais algumas funções que podem ser úteis.

A primeira é a limita_letras.
Quantos de vocês já precisaram limitar uma frase à, por exemplo, 20 caracteres? Você pode fazer simplesmente usando substr, mas em 90% dos casos a última palavra ficará cortada. Usando a função abaixo você evita que as palavras sejam cortadas. Você pode definir quantos caracteres a li nha terá sem problemas.
Veja abaixo o código comentado

Aqui eu uso a função wordwrap pra inserir um "|" em um lugar determinado.
Essa função é geralmente usada pra forçar quebras de linha, inserindo um
caractere que forçará isso, por exemplo o \n ou o <br>. No nosso caso eu
vou colocar um "|", porque eu não quero uma quebra de linha, só quero
determinar um limite. O quarto parâmetro da função wordwrap indica se você
quer que a palavra seja cortada no meio caso atinja o limite estipulado ou não.
no nosso caso vamos deixar em 0 (não).
Depois eu uso o explode pra separar o texto em arrays, dividindo-o por "|".
Agora é só pegar o primeiro elemento do array gerado, que conterá o que eu quero.

Código php
				

<?
//funcção limita letras. Essa função recebe 2 parâmetros:
//$texto = o texto que você deseja cortar
//$n_letras = a quantidade máxima de letras que você precisa
function limita_letras($texto, $n_letras)
{

$resultado = explode("|",wordwrap($texto,$n_letras,"|",0));
return $resultado[0];
}
?>


Nessa segunda função, eu vou limitar um texto baseado em uma quantidade
máxima de palavras.
Primeiramente eu vou usar o explode pra separar o texto em arrays pelos "espaços",
basicamente eu to colocando cada palavra em um elemento do arrray.
Depois eu uso o foreach para percorrer os elementos, e , enquanto eu percorro os elementos
eu verifico se a número atual do elemento já atingiiu o valor que eu estipulei como máximo.
Nesse ínterim eu vou salvando em um array auxiliar (buff, que não é a caça vampiros).
Quando eu atingir o vallor máximo eu encerro o foreach usando o break.
Agora é só juntar tudo usando o implode e concluir a função.

Código php
				
function limita_palavras($texto, $n_palavras)
{
$resultado = explode(" ",$texto);

foreach($resultado as $chave=>$r)
{
if($chave>=$n_palavras){break;}
$buff[]= $r;
}
//count($resultado);
return implode(" ",$buff);
}

Você gostou? Comente no fórum!

Comentários:

Micox disse:

Caracas, usei isso agora.
Muito, muito boas as funções.
Valeu por compartilhar Klawdyo.

dragun disse:

@Klawdyo

Hahaha... dei uma brincada com seu código...
Espero que esteja funcionando (testei aqui e tava)

Bom, esse novo código faz o seguinte.
Ele só para de exibir o texto, se todas as tags que forem abertas, forem fechadas..

Para quem recupera HTML do banco de dados...( tentando evitar que quebre o layout )
Fiz na correria, mas acho que está td ok...

CODE
function corta_texto($texto, $n_palavras)
        {
            $resultado = explode(" ",$texto);
            
            $tag_aberta = 0;
            foreach($resultado as $chave=>$r)
            {
                if($chave>=$n_palavras && $tag_aberta == 0){break;}
                
                if(eregi("<[a-z]+$", $r) || eregi("<[a-z]+>", $r)){
                    $tag_aberta++;
                }
                if(eregi("^\/>", $r) || eregi("<\/[a-z]+>", $r)){
                    $tag_aberta--;
                }
                
                $buff[]= $r;
            }
            //count($resultado);
            return implode(" ",$buff);
        }

Micox disse:

Cabei de usar a primeira criança do claudio aqui no webly eheheheh

Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).

Mais recentes em PHP

Mail injection em php
Por Micox - What??!?...
Zend frameworks - o inicio
Por LeandroBarral - Primeiros passos.....
Classe de conexão com mysql
Por Carutcho - Pô esses dias passei aqui no forum de php pra dar uma...
Decimal para hexadecimal
Por dragun - Exemplo de função recursiva...
Como enviar sms via celular e php da forma mais barata
Por Micox - Tutorial de envio de mensagens de texto através do celular usando php...

Ver mais Artigos de PHP.

Ver e retirar outras dúvidas no fórum Webly.

Alguns Direitos Reservados | RSS | O Fórum

Webly Portal e Fóruns - Internet + Humana | Design by ArthurHenrique.com