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 — Verifica se os caracteres são alfabéticos
Verifica se todos os caracteres na string fornecida,
text
, são alfabéticos.
No padrão C
locale letras são
[A-Za-z]
e ctype_alpha() é
equivalente a (ctype_upper($text) || ctype_lower($text))
se $text é um único caractere, mas outras linguagens possuem letras que
não são considerada nem maiúscula nem minúscula.
text
A string a ser testada.
Nota:
Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.
A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.
Retorna true
se todos caracteres em text
é
uma letra do atual locale, false
caso contrário.
Quando chamada com uma string vazia, o resultado sempre será false
.
Exemplo #1 Um exemplo da ctype_alpha() (usando o locale padrão)
<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
if (ctype_alpha($testcase)) {
echo "The string $testcase consists of all letters.\n";
} else {
echo "The string $testcase does not consist of all letters.\n";
}
}
?>
O exemplo acima produzirá:
The string KjgWZC consists of all letters. The string arf12 does not consist of all letters.