3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xmlString = '<root><item>Hibás XML</item>'; // Hiányzó záró tag. // Átvesszük az irányítást a hibakezelés felett, ez elnyomja az E_WARNING-ot. $previously = \libxml_use_internal_errors(true); try { return new \SimpleXMLElement($xmlString, \LIBXML_NONET | \LIBXML_NOCDATA | \LIBXML_NOBLANKS); } catch (\Throwable $e) { // Begyűjtjük a részletes hibákat a libxml pufferről. $errors = \array_map(static function (\LibXMLError $error): string { $level = match ($error->level) { LIBXML_ERR_WARNING => 'Warning', LIBXML_ERR_ERROR => 'Error', LIBXML_ERR_FATAL => 'Fatal Error', default => 'Unknown', }; return \sprintf('[%s] %s (%d:%d)', $level, \trim($error->message), $error->line, $error->column); }, \libxml_get_errors()); \libxml_clear_errors(); throw new \InvalidArgumentException( \sprintf('SimpleXMLElement parsing failed (%s).', \implode(', ', $errors)), 0, $e, ); } finally { // Visszaállítjuk az eredeti hibakezelési állapotot. \libxml_use_internal_errors($previously); }

preferences:
32.64 ms | 414 KiB | 6 Q