Contar vocales de una cadena en PHP7

publicado por: Anonymous

Tengo el siguiente enunciado: He de contar los caracteres totales de una cadena, contar el número total de vocales, y el número de veces que aparece cada vocal.
Yo me pierdo un poco y lo he hecho sin bucle while. Tampoco puedo usar arrays.
El error que me da al querer contar vocales por separado es:

Warning: substr() expects parameter 2 to be integer, string given in /opt/lampp/htdocs/pruebaexamen/ejercicio1.php on line 5

Warning: substr() expects parameter 2 to be integer, string given in /opt/lampp/htdocs/pruebaexamen/ejercicio1.php on line 6

Warning: substr() expects parameter 2 to be integer, string given in /opt/lampp/htdocs/pruebaexamen/ejercicio1.php on line 7

Warning: substr() expects parameter 2 to be integer, string given in /opt/lampp/htdocs/pruebaexamen/ejercicio1.php on line 8

Warning: substr() expects parameter 2 to be integer, string given in /opt/lampp/htdocs/pruebaexamen/ejercicio1.php on line 9

El código PHP:

<?php
    $texto = $_POST['texto'];
        $caracteres = strlen($texto);
        $vocales = substr_count($texto, 'a')+substr_count($texto, 'e')+substr_count($texto, 'i')+substr_count($texto, 'o')+substr_count($texto, 'u')+substr_count($texto, 'A')+substr_count($texto, 'E')+substr_count($texto, 'I')+substr_count($texto, 'O')+substr_count($texto, 'U');
        $a = substr_count($texto, 'a') + substr($texto, 'A');
        $e = substr_count($texto, 'e') + substr($texto, 'E');
        $i = substr_count($texto, 'i') + substr($texto, 'I');
        $o = substr_count($texto, 'o') + substr($texto, 'O');
        $u = substr_count($texto, 'u') + substr($texto, 'U');
        echo "El número total de caracteres es $caracteres <br/>";
        echo "El total de vocales es $vocales <br/>";
        echo "El numero de letras a (mayúsculas incluidas) es $a <br/>";
        echo "El numero de letras e (mayúsculas incluidas) es $e <br/>";
        echo "El numero de letras i (mayúsculas incluidas) es $i <br/>";
        echo "El numero de letras o (mayúsculas incluidas) es $o <br/>";
        echo "El numero de letras u (mayúsculas incluidas) es $u <br/>";
?>

solución

Tu código pero “correcto”.
Te habias equivocado poniendo substr, no substr_count

PHP:

<?php
    $texto = $_POST['texto'];
        $caracteres = strlen($texto);
        $vocales = substr_count($texto, 'a')+substr_count($texto, 'e')+substr_count($texto, 'i')+substr_count($texto, 'o')+substr_count($texto, 'u')+substr_count($texto, 'A')+substr_count($texto, 'E')+substr_count($texto, 'I')+substr_count($texto, 'O')+substr_count($texto, 'U');
        $a = substr_count($texto, 'a') + substr_count($texto, 'A');
        $e = substr_count($texto, 'e') + substr_count($texto, 'E');
        $i = substr_count($texto, 'i') + substr_count($texto, 'I');
        $o = substr_count($texto, 'o') + substr_count($texto, 'O');
        $u = substr_count($texto, 'u') + substr_count($texto, 'U');
        echo "El número total de caracteres es $caracteres <br/>";
        echo "El total de vocales es $vocales <br/>";
        echo "El numero de letras a (mayúsculas incluidas) es $a <br/>";
        echo "El numero de letras e (mayúsculas incluidas) es $e <br/>";
        echo "El numero de letras i (mayúsculas incluidas) es $i <br/>";
        echo "El numero de letras o (mayúsculas incluidas) es $o <br/>";
        echo "El numero de letras u (mayúsculas incluidas) es $u <br/>";
?>
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *