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 — 大文字かどうか調べる
text
調べる文字列。
注意:
-128 から 255 までの int を渡すと、ひとつの文字の ASCII 値とみなします (負の値には 256 を足して、拡張 ASCII の範囲に収まるようにします)。 それ以外の整数値は、10 進数を含む文字列とみなします。
PHP 8.1.0 以降は、ctype関数 に文字列でない引数を渡すことは、推奨されなくなりました。将来のバージョンでは、引数は ASCII コードポイントではなく、文字列として解釈されるようになります。ユーザが意図する振る舞いによっては、引数を文字列にキャストするか、 chr() を明示的にコールすべきです。
text
のすべての文字がカレントのロケールで
大文字だった場合に true
、そうでない場合に false
を返します。
空文字列を渡して呼び出した場合、結果は常に false
になります。
例1 ctype_upper() の例(デフォルトのロケールを利用)
<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
if (ctype_upper($testcase)) {
echo "The string $testcase consists of all uppercase letters.\n";
} else {
echo "The string $testcase does not consist of all uppercase letters.\n";
}
}
?>
上の例の出力は以下となります。
The string AKLWC139 does not consist of all uppercase letters. The string LMNSDO consists of all uppercase letters. The string akwSKWsm does not consist of all uppercase letters.
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