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 — Prüft auf Buchstabe(n)
Prüft. ob alle Zeichen in text
Buchstaben sind. In
der Standard-C
-Locale gelten nur
[A-Za-z]
als Buchstaben und wenn $text nur ein Zeichen
enthält ist ctype_alpha() gleichbedeutend zu
(ctype_upper($text) || ctype_lower($text))
. Es gibt
jedoch auch Sprachen, in denen einzelne Buchstaben weder als groß- noch als
kleingeschrieben gelten.
text
Der zu prüfende String.
Hinweis:
Wenn ein int 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 eine Zeichenkette interpretiert, welche die dezimalen Ziffern des Integers enthält.
Seit PHP 8.1.0 ist die Übergabe eines Nicht-String-Arguments veraltet. In Zukunft wird das Argument statt als ASCII-Codepunkt als String interpretiert werden. Je nach beabsichtigtem Verhalten sollte das Argument entweder in String umgewandelt werden, oder es sollte ein expliziter Aufruf von chr() erfolgen.
Gibt true
zurück, wenn jedes Zeichen in text
in
der aktuellen Locale ein Buchstabe ist, sonst false
.
Bei einem Aufruf mit einer leeren Zeichenkette wird immer false
zurückgegeben.
Beispiel #1 ctype_alpha()-Beispiel (unter Verwendung der Standard-Locale)
<?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.