X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fparser%2Fxml%2Fclass_XmlParser.php;h=dab9f3af6c74e6fef126d902d4b8ff13bd733898;hb=886541aecfdee3aa7cc62c14f3e8aaca0b52fff4;hp=76c39879e3efc28241e00c0e4996700248235477;hpb=84e2207412d3c6ea9f940a83b2cdd4503509808a;p=core.git diff --git a/inc/classes/main/parser/xml/class_XmlParser.php b/inc/classes/main/parser/xml/class_XmlParser.php index 76c39879..dab9f3af 100644 --- a/inc/classes/main/parser/xml/class_XmlParser.php +++ b/inc/classes/main/parser/xml/class_XmlParser.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -43,7 +43,7 @@ class XmlParser extends BaseParser implements Parseable { * @param $templateInstance A CompileableTemplate instance * @return $parserInstance An instance of this parser */ - public final static function createXmlParser (CompileableTemplate $templateInstance) { + public static final function createXmlParser (CompileableTemplate $templateInstance) { // Get a new instance $parserInstance = new XmlParser(); @@ -63,12 +63,21 @@ class XmlParser extends BaseParser implements Parseable { */ public function parseXmlContent ($content) { // Convert all to UTF8 - if (function_exists('recode')) { + if (empty($content)) { + // No empty content! + $this->debugOuput('Empty content! Backtrace:
');
+			debug_print_backtrace();
+			$this->debugOuput('
'); + die(); + } elseif (function_exists('recode')) { // Recode found, so use it $content = recode('html..utf8', $content); + } elseif (function_exists('mb_convert_encoding')) { + // Use mb_convert_encoding() + $content = mb_convert_encoding($content, 'UTF-8', 'auto'); } else { // @TODO We need to find a fallback solution here - $this->partialStub('Cannot find recode extension!'); + $this->partialStub('Cannot find recode/mbstring extension!'); } // END - if // Get an XML parser @@ -93,7 +102,7 @@ class XmlParser extends BaseParser implements Parseable { // Now parse the XML tree if (!xml_parse($xmlParser, $content)) { // Error found in XML! - //* DEBUG: */ die('
'.htmlentities($content).'
'); + //* DEBUG: */ die(__METHOD__ . ':
'.htmlentities($content).'
'); throw new XmlParserException(array($this, $xmlParser), self::EXCEPTION_XML_PARSER_ERROR); } // END - if