Inicio Apuntes FPApuntes DAW Ejercicio Básico 24 PHP: Comprobar si una frase está en mayúsculas o minúsculas

Ejercicio Básico 24 PHP: Comprobar si una frase está en mayúsculas o minúsculas

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

En el ejercicio de php de hoy, vamos a tratar de crear una función que compruebe si una frase o palabra está en minúsculas o mayúsculas. Para realizar esta comprobación se tendrán que utilizar operadores a nivel de bit. Esto vienen siendo; and, or, not … y esas cosas. No hay que utilizarlos todos, solo los necesarios para completar la tarea que estamos buscando.

Comprobar si una frase está en mayúsculas o minúsculas con PHP

Bueno, dado el enunciado … veamos el código …

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Práctica 24</title>
        </head>
        <body>
     
            <!--
            Ejemplo:
            El caracter 'a' en ASCII es 1100001
            El caracter 'A' es          1000001
           
            Mayúsculas y minúsculas se diferencias solo en un bit, el bit que equivale a 32  
           
            32 a nivel de bit: 0100000
     
            Si se aplica un or a nivel de bit a un caracter en mayúscula se
            obtiene ese caracter en minúscula
           
           
               (65) 1000001  -> 'A'
                    0100000  -> 32
                    ------------------------OR
               (97) 1100001  -> ('a' | 32) -> 'a'  
           
           
            'A' | 32 = 'a', y así para el resto de letras
           
            -->
     
            <?php
     
            /**
             * Evalúa si una cadena está en minúscula o no
             * ord() convierte un caracter a su valor ASCII.
             */
            function compMayusculas($cadena) {
                //Se recorre la cadena de 0 hasta el tamaño total de la cadena $cadena
                for ($i = 0; $i < strlen($cadena); $i++) {
                    //Se convierte cada caracter a ASCII con ord
                    $caracter = ord($cadena[$i]);
                    //echo ($caracter | 32);
                    //echo $caracter;
                    //Si a alguno de los carácteres aplicándole un or
                    //con el numero 32 no coincide
                    //consigo mismo significa que está en mayúsculas y se devuelve
                    //false
                    if ($caracter != ($caracter | 32)) {
                        return false;
                    }
                }
                //Si nunca falla signinfica que la cadena está completamente en
                // minúsculas
                return true;
            }
     
            $cadena = 'los pelos del sobaco no son comestibles'; //frase a comprobar
            ?>
           
            <hr>
           
            <?php
            echo "En la cadena " . $cadena . " ...";
            //Comprobamos si compMayusculas devuelve true o false
            if (compMayusculas($cadena)) {
                echo 'todas las letras están en minúsculas';
            } else {
                echo 'hay una o más letras mayúsculas';
            }
            ?>
     
            <hr>
     
        </body>
    </html>


Este ejercicio realiza una comprobación básica. Posiblemente no sea la mejor de las maneras de comprobar si unas palabras están en mayúsculas o minúsculas, pero es una buena forma de empezar a realizar ejercicios con PHP.

 

También te puede interesar ...

Deja un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.