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.
À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.
Retourne true
si tous les caractères de text
sont en majuscules dans la locale courante.
Lorsque appelé avec une chaîne vide, le résultat sera toujours false
.
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