Signatur
Beschreibung
transliterator_get_error_message() liefert die Fehlermeldung, die beim letzten Vorgang mit dem übergebenen Transliterator-Objekt aufgetreten ist. Diese Funktion ist die prozedurale Entsprechung zur Methode Transliterator::getErrorMessage().
Die Funktion ist besonders hilfreich, wenn transliterator_transliterate() oder die Erstellung eines Transliterators fehlschlägt und man den genauen Fehlergrund ermitteln möchte. Im Erfolgsfall gibt die Funktion eine beschreibende Fehlermeldung als Zeichenkette zurück. Ist kein Fehler aufgetreten, wird in der Regel eine leere Zeichenkette zurückgegeben.
Diese Funktion wird typischerweise in Kombination mit transliterator_get_error_code() eingesetzt, um sowohl den Fehlercode als auch die lesbare Beschreibung abzufragen und entsprechend zu reagieren.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $transliterator Pflicht | Transliterator | Das Transliterator-Objekt, dessen letzte Fehlermeldung abgerufen werden soll. |
Rückgabewert
false zurückgegeben.Beispiele
Fehlermeldung nach fehlgeschlagener Transliteration abrufen
<?php
// Gültigen Transliterator erstellen
$transliterator = Transliterator::create('Any-Latin; Latin-ASCII');
if ($transliterator === null) {
echo 'Transliterator konnte nicht erstellt werden.';
exit;
}
// Transliteration durchführen
$result = transliterator_transliterate($transliterator, 'Héllo Wörld');
if ($result === false) {
$errorCode = transliterator_get_error_code($transliterator);
$errorMessage = transliterator_get_error_message($transliterator);
echo 'Fehlercode: ' . $errorCode . PHP_EOL;
echo 'Fehlermeldung: ' . $errorMessage . PHP_EOL;
} else {
echo 'Ergebnis: ' . $result . PHP_EOL;
}
Objektorientierte Variante zum Vergleich
<?php
// Transliterator über statische Methode erzeugen
$transliterator = Transliterator::create('Any-Latin; Latin-ASCII');
if ($transliterator === null) {
echo 'Transliterator konnte nicht erstellt werden.';
exit;
}
$text = 'Österreich über alles';
$result = $transliterator->transliterate($text);
if ($result === false) {
// Prozedurale Variante
echo 'Fehler (prozedural): ' . transliterator_get_error_message($transliterator) . PHP_EOL;
// OOP-Variante
echo 'Fehler (OOP): ' . $transliterator->getErrorMessage() . PHP_EOL;
} else {
echo 'Transliteriert: ' . $result . PHP_EOL;
}
// Wichtig · Fallstricke
Hinweis: Die Funktion gibt nur dann eine aussagekräftige Fehlermeldung zurück, wenn zuvor tatsächlich ein Fehler aufgetreten ist. Bei erfolgreichen Operationen kann die Rückgabe eine leere Zeichenkette sein. Prüfen Sie daher immer zuerst den Rückgabewert der eigentlichen Transliterationsoperation, bevor Sie die Fehlermeldung auslesen.
Diese Funktion setzt die Intl-Erweiterung (ext-intl) voraus, die in PHP seit Version 5.3 als Bundled Extension verfügbar ist, aber explizit aktiviert werden muss. Achten Sie darauf, dass intl in Ihrer php.ini geladen ist.