Zum Inhalt springen

xml_error_string()

Die xml_error_string()-Funktion ist eine integrierte PHP-Funktion, die eine Zeichenkettenbeschreibung eines XML-Parserfehlers zurückgibt. Sie gehört zur veralteten XML-Parser-Erweiterung. Beim Parsen von XML-Dateien mit SimpleXML oder anderen modernen Bibliotheken werden Fehler in der Regel stattdessen mit libxml_get_errors() behandelt, da die veraltete xml-Erweiterung in modernen PHP-Versionen als veraltet gilt.

Die Funktion xml_error_string() ist nützlich, wenn Sie für veraltete XML-Parsing-Workflows eine benutzerfreundliche Fehlermeldung abrufen müssen, moderne Anwendungen sollten jedoch für SimpleXML libxml_get_errors() bevorzugen.

Syntax

Die Syntax der xml_error_string()-Funktion lautet wie folgt:

Syntax der xml_error_string()-Funktion

php
xml_error_string($code)

Dabei ist $code der vom XML-Parser zurückgegebene Fehlercode.

Usage Examples

Werfen wir einen Blick auf einige praktische Beispiele zur Verwendung von xml_error_string() in PHP.

Example 1: Retrieving an XML Parser Error String (Legacy XML Parser)

Die Funktion xml_error_string() funktioniert mit der veralteten XML-Parser-Erweiterung. Sie können sie zum Parsen von XML und zum Abrufen der Fehlerzeichenkette verwenden, wie hier gezeigt:

XML-Datei parsen und Fehlerzeichenkette mit xml_error_string() in PHP abrufen

php
$parser = xml_parser_create();
$xml_data = "<invalid xml>";
xml_parse($parser, $xml_data);

$error_code = xml_get_error_code($parser);
if ($error_code !== XML_ERROR_NONE) {
  $error_string = xml_error_string($error_code);
  echo "Error: $error_string";
}

xml_parser_free($parser);

Dieser Code erstellt einen XML-Parser, versucht, ungültiges XML zu parsen, und prüft auf Fehler. Tritt ein Fehler auf, wird der Fehlercode mit xml_get_error_code() abgerufen und anschließend die Fehlerzeichenkette mit xml_error_string(). Abschließend wird die Fehlerzeichenkette ausgegeben.

Wenn Sie die SimpleXML-Bibliothek verwenden, ist xml_error_string() nicht anwendbar. Verwenden Sie stattdessen libxml_use_internal_errors(true) und libxml_get_errors(), um Parsing-Fehler zu behandeln:

Anzeigen einer XML-Parser-Fehlermeldung

php
libxml_use_internal_errors(true);

if (isset($_FILES["xml_file"])) {
  $xml = simplexml_load_file($_FILES["xml_file"]["tmp_name"]);
  if ($xml === false) {
    $errors = libxml_get_errors();
    foreach ($errors as $error) {
      echo "Error: " . $error->message;
    }
  } else {
    // process the XML file
  }
}

Dieser Code aktiviert die interne Fehlerbehandlung für SimpleXML, prüft, ob eine XML-Datei über das $_FILES-Array hochgeladen wurde, und versucht, die Datei zu laden. Tritt während des Parsens ein Fehler auf, werden die Fehlerdetails mit libxml_get_errors() abgerufen und die Fehlermeldung dem Benutzer angezeigt. Treten keine Fehler auf, kann der Code die XML-Datei nach Bedarf verarbeiten.

Conclusion

In diesem Artikel haben wir die PHP-Funktion xml_error_string() und deren Verwendung zum Abrufen einer Zeichenkettenbeschreibung eines XML-Parserfehlers in veralteten XML-Parsing-Workflows besprochen. Wir haben erläutert, was die Funktion tut, ihre Syntax dargestellt und Beispiele für ihre Anwendung bereitgestellt. Für moderne PHP-Anwendungen, die SimpleXML verwenden, empfehlen wir die Nutzung von libxml_use_internal_errors(true) und libxml_get_errors(), um Parsing-Fehler zu behandeln, wodurch Ihre Webanwendungen robuster und benutzerfreundlicher werden.

Practice

Was macht die Funktion libxml_get_errors() in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.