It works if you set the locale correctly:
<?php
setLocale(LC_CTYPE, 'FR_fr.UTF-8');
?>
with this change you will get "yes" "yes"
ctype_alpha
(PHP 4 >= 4.0.4, PHP 5)
ctype_alpha — Chequear posibles caracteres alfabéticos
Descripción
$text
)
Verifica si todos los caracteres en la string
entregada,texto, son alfabéticos. En la
localización C estándar las letras se limitan a
[A-Za-z] y ctype_alpha() es
equivalente a (ctype_upper($texto) ||
ctype_lower($texto)) si $texto es un caracter sencillo, aunque
otros idiomas usan letras que no son consideradas como mayúsculas ni
minúsculas.
Parámetros
-
text -
El string de prueba.
Valores devueltos
Devuelve TRUE si cada caracter de texto es una
letra de la localización actual, FALSE de lo contrario.
Ejemplos
Ejemplo #1 Un ejemplo de ctype_alpha() (usando la localización predeterminada)
<?php
$cadenas = array('KjgWZC', 'arf12');
foreach ($cadenas as $caso_prueba) {
if (ctype_alpha($caso_prueba)) {
echo "La cadena $caso_prueba consiste completamente de letras.\n";
} else {
echo "La cadena $caso_prueba no consiste completamente de letras.\n";
}
}
?>
El resultado del ejemplo sería:
La cadena KjgWZC consiste completamente de letras. La cadena arf12 no consiste completamente de letras.
Notas
Nota:
Si se proporciona un integer entre -128 y 255 inclusive, se interpreta como el valor ASCII de un simple caráter (a los valores negativos se le añade 256 para permitir caracteres en el rango ASCII Extendido). Cualquier otro entero se interpreta como una cadena que contiene los dígitos decimales del entero.
Ver también
- ctype_upper() - Chequear posibles caracteres en mayúscula
- ctype_lower() - Chequear posibles caracteres en minúscula
- setlocale() - Establecer la información de la configuración regional
worth noticing? It seems that the ctype_alpha family of functions won't handle UTF-8 string (php 5.2.6)
<?php
$texte = 'jérôme';
setLocale(LC_CTYPE, 'FR_fr');
echo 'Pure ascii ? ', (ctype_alpha($texte) ) ? 'yes' : 'no';
echo '<br />';
$texte = iconv( "UTF-8", "ISO-8859-1", $texte) ;
echo 'Letters only ? ' , (ctype_alpha($texte) ) ? 'yes' : 'no';
?>
ouputs :
Pure ascii ? no
Letters only ? yes
