(PHP 4 >= 4.0.4, PHP 5)
ctype_alpha — Auf Buchstabe(n) überprüfen
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.
Der zu prüfende String.
Liefert TRUE wenn jedes Zeichen in text ein Buchstabe ist, sonst FALSE.
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.
It works if you set the locale correctly:
<?php
setLocale(LC_CTYPE, 'FR_fr.UTF-8');
?>
with this change you will get "yes" "yes"
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