febrero
2009
Detectar mayúsculas con PHP
En ocasiones cuando se mantiene un foro o un libro de visitas (¿todavía se utiliza?) y aunque escribamos recomendaciones de que no se escriba totalmente en mayúsculas, siempre habrá personas que no hagan caso. Escribí este pequeña función que si bien no es perfecta ni mucho menos, cumple con su objetivo. Básicamente le indicamos una cadena a la función y nos devuelve el porcentaje (en enteros) de mayúsculas que contiene dicha cadena:
<?php /* Devuelve el porcentaje de mayúsculas contenidas en una cadena. v1 11 febrero 2009 jorgem at gmail.com */ function mayus() { $str = func_get_arg(0); $str = trim($str); if(empty($str)) return $str; //quitamos espacios $str = preg_replace("/s/","",$str); preg_match_all("/[A-Z]/",$str,$y); if(isset($y[0]) && !empty($y[0])) return (int)((sizeof($y[0])*100)/strlen($str)); else return 0; } $cadena = "hola MUNDO cruel y PERVerso !!!"; print("Texto: $cadena"); printf("Porcentaje de mayúsculas: %s%%",mayus($cadena)); /* asi pues, la cadena anterior imprimirá lo siguiente: Texto: hola MUNDO cruel y PERVerso !!! Porcentaje de mayúsculas: 34% */ ?>
Así pues, se puede implementar tipo:
if(mayus($cadena)>30) $cadena = strtolower($cadena)
de tal forma que la cadena quedará en minúsculas en caso de que el contenido de mayúsculas de la cadena sea mayor a un 30%. Espero que sea útil y si alguien indica una manera mas ortodoxa de hacer lo mismo, bienvenido sea.
Dos es mejor que uno... supongo :/ ]
del.icio.us Estrella este post
Entradas relacionadas:

