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 — Auf Buchstabe(n) überprüfen
Beschreibung
Gibt TRUE zurück, wenn alle Zeichen in text Buchstaben im Sinne der aktuellen locale-Einstellung sind. Anderenfalls wird FALSE zurückgegeben. In der Standardeinstellung für locale C gelten nur [A-Za-z] als Buchstaben und ctype_alpha() ist gleichbedeutend zu (ctype_upper($text) || ctype_lower($text)), wenn $text nur ein Zeichen enthält. Es gibt jedoch auch Sprachen, in denen einzelne Buchstaben weder als groß- noch als kleingeschrieben gelten.
Parameter-Liste
- text
-
Der zu prüfende String.
Rückgabewerte
Liefert TRUE wenn jedes Zeichen in text ein Buchstabe ist, sonst FALSE.
Beispiele
Beispiel #1 ctype_alpha()-Beispiel (standard-locale vorausgesetzt)
<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
if (ctype_alpha($testcase)) {
echo "Der String $testcase besteht nur aus Buchstaben.\n";
} else {
echo "Der String $testcase enthält nicht nur Buchstaben.\n";
}
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Der String KjgWZC besteht nur aus Buchstaben. Der String arf12 enthält nicht nur Buchstaben.
Anmerkungen
Hinweis:
Wenn ein integer zwischen -128 und 255 (inklusive) übergeben wird, wird dieser als ASCII Wert eines einzelnen Buchstabens interpretiert (zu negativen Werten wird 256 dazu addiert, um Buchstaben des Erweiterten ASCII Zeichensatzes zu erlauben). Alle anderen Integer werden wie ein String interpretiert, welcher die dezimalen Ziffern des Integers enthält.
Siehe auch
- ctype_upper() - Auf Großbuchstaben prüfen
- ctype_lower() - Auf Kleinbuchstaben überprüfen
- setlocale() - Setzt Locale Informationen
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
