Essa semana enfrentei um dilema, precisei quebrar a frase em palavras nos espaços em branco. Até aí ta fácil, porém depois precisei contar as letras de cada palavra e somar até dar o número determinado. Quando chegar nesse número preciso quebrar a linha. Legal né?! ;-()
Bom, pra resolver essas questões, voltei a dar uma estudada no básico do PHP. Dependendo do que você precisa fazer, você tem funções prontas específicas. Vamos às situações:
1) Quebrar a frase nos espaços em branco
Fácil! Utilize a função EXPLODE do PHP.
Definição do site php.net
array explode( string $delimiter , string $string [, int $limit> ] )
Vamos pegar meu nome completo como exemplo:
$stringNome = "Dilberto Gabriel Rosa";
$nomeQuebrado = explode(" ", $stringNome);
echo $nomeQuebrado[0]; // Dilberto
echo $nomeQuebrado[1]; // Gabriel
echo $nomeQuebrado[0]; // Dilberto
2) Contar o número de palavras na frase
Agora que já quebramos a frase, temos um array onde cada índice do array contém uma palavra. Pra contar o número de palavras basta contar quantos elementos temos no array gerado.
echo 'Total de palavras: '.count($nomeQuebrado);
3) Contar o número de letras enquanto mostra as palavras
Bom, aqui a parte mais trabalhosa, onde teremos que ler cada índice do array, e para cada índice do array lido temos que ler letra por letra e incrementar nosso contador. Desta forma, ao final do último índice do array temos o total de letras de toda a string inicial.
Vamos ao código:
//Criando a variável que vai contar letra por letra
$contaLetra = 0;
//Loop que vai olhar palavra por palavra do array
foreach($nomeQuebrado as $nq) {
//Loop que vai olhar em cada palavra, letra por letra do array e incrementar o contador
for($i=0;$i<strlen($nq);$i++) {
<code>echo '<br>'.$nq[$i];</code>
<code>$contaLetra++;</code>
}
//Quebrando linha depois da palavra
echo '<br>';
}
//Mostrando o total de letras da nossa frase
echo '<br>Total de Letras: '.$contaLetra;
4) Quebrar linha quando passar de 10 letras
Ótimo! Agora ficou fácil, se você precisar quebrar linha no momento em que passar 10 letras por exemplo, basta incluir uma condicional validando dentro do primeiro loop, desta forma você vai quebrar linha ao final da palavra, e não no meio dela, o que é mais correto.
IMPORTANTE: não esqueça que quando você quebrar a linha deve zerar o contador para que comece validar as próximas 10 letras. E finalmente, é necessário criar um novo contador se quiser saber quantas letras existem na frase inteira.
Confira o código completo:
//String definida
$stringNome = 'Dilberto Gabriel Rosa Teste Teste2 Teste3';
//Gerando array com todos os nomes
$nomeQuebrado = explode(' ',$stringNome);
//Criando a variável que vai contar letra por letra
$contaLetra = 0;
//Variável que vai armazenar o total geral de letras
$ContaLetrasTotal = 0;
//Loop que vai olhar palavra por palavra do array
foreach($nomeQuebrado as $nq) {
//Validando se chegou ao número máximo de letras para quebrar a linha
if($contaLetra > 10) {
echo '<br>';
$contaLetra = 0;
}
//Loop que vai olhar em cada palavra, letra por letra do array e incrementar o contador
for($i=0;$i<strlen($nq);$i++) {
echo $nq[$i];
$contaLetra++;
$contaLetraTotal++;
}
//espaço entre as palavras e incrementando contador
echo ' ';
$contaLetra++;
$contaLetraTotal++;
}
//Mostrando o total de letras da nossa frase
echo '<br>Total de Letras: '.--$contaLetraTotal;
Bom final de Semana!
Comentários