It works if you set the locale correctly:
<?php
setLocale(LC_CTYPE, 'FR_fr.UTF-8');
?>
with this change you will get "yes" "yes"
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_alpha — Vérifie qu'une chaîne est alphabétique
ctype_alpha() vérifie si tous les caractères
de la chaîne text
sont des lettres, et
false
sinon. En langage C
, les lettres sont
[A-Za-z]
et ctype_alpha() est
équivalent à (ctype_upper($text) || ctype_lower($text))
,
si text
est un caractère unique, mais
certaines langues ont des caractères qui ne sont ni des majuscules,
ni des minuscules.
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
est une lettre de la locale courante, false
sinon.
Lorsque appelé avec une chaîne vide, le résultat sera toujours false
.
Exemple #1 Exemple avec ctype_alpha() (en utilisant les locales courantes)
<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
if (ctype_alpha($testcase)) {
echo "La chaîne $testcase ne contient que des lettres.\n";
} else {
echo "La chaîne $testcase ne contient pas que des lettres.\n";
}
}
?>
L'exemple ci-dessus va afficher :
La chaîne KjgWZC ne contient que des lettres. La chaîne arf12 ne contient pas que des lettres.