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.