Ir para conteúdo

Arquivado

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

Suuh_

Php

Recommended Posts

Gente, estou fazendo um formulario em php, e abri um textarea para que o usuario escreva oque quiser, entretanto precisava que ao clicar em "Enviar" aparecesse apenas a quantidade de vogais que aparecessem no texto escrito pelo usuario, com a função strlen consegui que aparecesse a quantidade de letras mais precisava apenas a quantas vezes cada vogal aparece !

Compartilhar este post


Link para o post
Compartilhar em outros sites

No HTML:

 

<b> ---> Escreva um texto <--- </b>

<br> (limite de caracter : 550 !)

<br><br>

<textarea name = "texto" value = "texto" rows = "10" cols = "50" maxlength = "550"></textarea>

<br><br>

 

<input type=submit value = "Enviar">

 

No PHP:

 

echo "<br>";

$str = $_POST['texto'];

echo strlen ($str);

/*Essa função mostra a quantidade de letras escritas*/

 

 

Essa outra parte NÃO deu certo !! Mas em todo caso, foi uma das coisas que eu tentei tbm.

 

echo "<br>";

$texto=$_POST['texto'];

switch($texto){

case "A":

case "E":

case "I":

case "O":

case "U":

case "a":

case "e":

case "i":

case "o":

case "u":

echo "Vogal";

break;

default:

echo "Consoante";

break;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim funciona.

 

<?php
$texto = $_POST['texto'];
$vogal = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$qnt = strlen($texto);
$cont = 0;
for($$i = 0; $i < $qnt; $i++){
   $cont = (in_array(strtolower($texto[$i]), $vogal)) ? ($cont + 1) : ($cont + 0);
}
echo "Existem ".$cont." em ".$texto;
?>

 

Adaptei o código que vi aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste aí:

 

<?php

if (isset($_POST['texto'])) {

   // Separa os acentos das letras
   $texto = iconv('utf-8', 'us-ascii//TRANSLIT', $_POST['texto']);

   // Remove qualquer coisa que não seja uma letra
   $texto = preg_replace("[\W]", "", $texto);

   // Passa tudo para minúculas
   $texto = strtolower($texto);

   // Transforma as letras em um array
   $letras = str_split($texto);

   // Conta o número de ocorrencias de cada letra
   $qtd    = array_count_values($letras);
   $total  = count($qtd);

   // Quantidades das letras vogais separadamente
   $a = isset($qtd['a']) ? $qtd['a'] : 0;
   $e = isset($qtd['e']) ? $qtd['e'] : 0;
   $i = isset($qtd['i']) ? $qtd['i'] : 0;
   $o = isset($qtd['o']) ? $qtd['o'] : 0;
   $u = isset($qtd['u']) ? $qtd['u'] : 0;

   // Quantidade de todas as vogais
   $vogais = $a + $e + $i + $o + $u;

   echo "Existem <b>{$vogais} letras vogais</b> no texto com total de {$total} letras:<br>"
       . "{$a} letras A<br>"
       . "{$e} letras E<br>"
       . "{$i} letras I<br>"
       . "{$o} letras O<br>"
       . "{$u} letras U";
}

?>

<form action="" method="post">

<textarea name="texto">
</textarea>

<button type="submit">Contar Vogais</button>
</form>

 

Obs.: Não se esqueça de salvar o arquivo com codificação em UFT-8 (se estiver usando o Nodepad++, vá em Formatar>Converter para UTF-8, aliás, configure logo seu editor para sempre salvar neste formato, lhe poupará muitos problemas futuros com erros 'estranhos') ou você terá problemas com a função iconv ao lidar com caracteres especiais (letras com certos acentos ou ç, por exemplo). A função iconv já vem habilitada por padrão, mas não estará disponível se o PHP tiver sido compilado com a flag --without-iconv.

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.