Underscores in the string will result in false, so you have to remove them first.
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_upper — Vérifie qu'une chaîne est en majuscules
ctype_upper() vérifie si tous les caractères
de la chaîne text
sont des majuscules.
text
La chaîne testée.
Note:
Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.
Retourne true
si tous les caractères de text
sont en majuscules dans la locale courante.
Exemple #1 Exemple avec ctype_upper() (en utilisant la locale courante)
<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
if (ctype_upper($testcase)) {
echo "La chaîne $testcase ne contient que des majuscules.\n";
} else {
echo "La chaîne $testcase ne contient pas que des majuscules.\n";
}
}
?>
L'exemple ci-dessus va afficher :
La chaîne AKLWC139 ne contient pas que des majuscules. La chaîne LMNSDO ne contient que des majuscules. La chaîne akwSKWsm ne contient pas que des majuscules.
Underscores in the string will result in false, so you have to remove them first.
// after screwing around with function.ctype-upper
// I found this simple solution
if (strtolower($string) != $string)// its so simple!
{
echo "uppercase letters found in $string";
}
source: http://stackoverflow.com/questions/4426327/how-to-detect-if-string-contains-1-uppercase-letter-in-php