Signatur
Beschreibung
transliterator_list_ids() liefert eine Liste aller Transliterator-IDs, die auf dem System über die zugrunde liegende ICU-Bibliothek verfügbar sind. Jede ID identifiziert eine bestimmte Transliterationsregel, etwa die Umwandlung von kyrillischen Zeichen in lateinische Schrift (Cyrillic-Latin) oder die Normalisierung von Unicode-Zeichen.
Transliteratoren werden typischerweise verwendet, um Text aus einem Schriftsystem in ein anderes zu übertragen, Sonderzeichen zu normalisieren oder für die Erzeugung von URL-freundlichen Slugs aus internationalen Zeichenketten. Die zurückgegebenen IDs können direkt an transliterator_create() oder die Methode Transliterator::create() übergeben werden.
Die Funktion ist der prozedurale Äquivalent zur statischen Methode Transliterator::listIDs(). Sie erfordert die PHP-Erweiterung intl, die wiederum auf die ICU-Bibliothek angewiesen ist. Die Menge der verfügbaren IDs hängt daher von der installierten ICU-Version ab.
Rückgabewert
array mit den Namen aller verfügbaren Transliterator-IDs als Strings zurück. Im Fehlerfall (z. B. wenn die intl-Erweiterung nicht verfügbar ist oder ein ICU-Fehler auftritt) wird false zurückgegeben.Beispiele
Alle verfügbaren Transliterator-IDs ausgeben
<?php
$ids = transliterator_list_ids();
if ($ids === false) {
echo 'Fehler beim Abrufen der Transliterator-IDs.';
} else {
echo 'Anzahl verfügbarer Transliteratoren: ' . count($ids) . PHP_EOL;
// Die ersten 10 IDs ausgeben
foreach (array_slice($ids, 0, 10) as $id) {
echo $id . PHP_EOL;
}
}
Prüfen, ob eine bestimmte ID verfügbar ist
<?php
$wantedId = 'Any-Latin';
$ids = transliterator_list_ids();
if ($ids !== false && in_array($wantedId, $ids)) {
$transliterator = transliterator_create($wantedId);
$text = 'Привет мир';
$result = transliterator_transliterate($transliterator, $text);
echo 'Transliteriert: ' . $result . PHP_EOL;
} else {
echo "Transliterator '{$wantedId}' ist nicht verfügbar." . PHP_EOL;
}
IDs nach Stichwort filtern
<?php
$ids = transliterator_list_ids();
if ($ids !== false) {
// Alle IDs, die 'Latin' enthalten
$latinIds = array_filter($ids, fn(string $id) => str_contains($id, 'Latin'));
foreach ($latinIds as $id) {
echo $id . PHP_EOL;
}
}
// Wichtig · Fallstricke
Die Funktion setzt die PHP-Erweiterung intl voraus (extension=intl in der php.ini). Ist diese nicht geladen, führt der Aufruf zu einem fatalen Fehler. Die Anzahl und Namen der verfügbaren IDs variieren je nach installierter ICU-Version und Betriebssystem.
Da die Funktion keine Parameter entgegennimmt, ist der Rückgabewert stets eine vollständige Liste aller IDs. Möchte man gezielt nach bestimmten Transliteratoren suchen, sollte man das zurückgegebene Array mit array_filter() oder ähnlichen Funktionen weiterverarbeiten.