X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FXML.php;h=4eed3a85f84eb511b0859521d75be1a34a99a760;hb=e52e505a481ed6f7e3766725d709b5f0653b036b;hp=3159fb95e9d1add80e8e7f3223b150587af6fa4c;hpb=33ec3d8051ba50c8b4560cfb410fd93ffd348dfb;p=friendica.git diff --git a/src/Util/XML.php b/src/Util/XML.php index 3159fb95e9..4eed3a85f8 100644 --- a/src/Util/XML.php +++ b/src/Util/XML.php @@ -1,7 +1,24 @@ . + * */ + namespace Friendica\Util; use DOMXPath; @@ -10,12 +27,12 @@ use Friendica\Core\System; use SimpleXMLElement; /** - * @brief This class contain methods to work with XML data + * This class contain methods to work with XML data */ class XML { /** - * @brief Creates an XML structure out of a given array + * Creates an XML structure out of a given array * * @param array $array The array of the XML structure that will be generated * @param object $xml The createdXML will be returned by reference @@ -114,7 +131,7 @@ class XML } /** - * @brief Copies an XML object + * Copies an XML object * * @param object $source The XML source * @param object $target The XML target @@ -134,7 +151,7 @@ class XML } /** - * @brief Create an XML element + * Create an XML element * * @param \DOMDocument $doc XML root * @param string $element XML element name @@ -156,7 +173,7 @@ class XML } /** - * @brief Create an XML and append it to the parent object + * Create an XML and append it to the parent object * * @param \DOMDocument $doc XML root * @param object $parent parent object @@ -172,7 +189,7 @@ class XML } /** - * @brief Convert an XML document to a normalised, case-corrected array + * Convert an XML document to a normalised, case-corrected array * used by webfinger * * @param object $xml_element The XML document @@ -223,7 +240,7 @@ class XML } /** - * @brief Convert the given XML text to an array in the XML structure. + * Convert the given XML text to an array in the XML structure. * * Xml::toArray() will convert the given XML text to an array in the XML structure. * Link: http://www.bin-co.com/php/scripts/xml2array/ @@ -401,7 +418,7 @@ class XML } /** - * @brief Delete a node in a XML object + * Delete a node in a XML object * * @param \DOMDocument $doc XML document * @param string $node Node name @@ -416,18 +433,26 @@ class XML } } - public static function parseString($s, $strict = true) + /** + * Parse XML string + * + * @param string $s + * @param boolean $suppress_log + * @return Object + */ + public static function parseString(string $s, bool $suppress_log = false) { - // the "strict" parameter is deactivated libxml_use_internal_errors(true); $x = @simplexml_load_string($s); if (!$x) { - Logger::error('Error(s) while parsing XML string.', ['callstack' => System::callstack()]); - foreach (libxml_get_errors() as $err) { - Logger::info('libxml error', ['code' => $err->code, 'position' => $err->line . ":" . $err->column, 'message' => $err->message]); + if (!$suppress_log) { + Logger::error('Error(s) while parsing XML string.', ['callstack' => System::callstack()]); + foreach (libxml_get_errors() as $err) { + Logger::info('libxml error', ['code' => $err->code, 'position' => $err->line . ":" . $err->column, 'message' => $err->message]); + } + Logger::debug('Erroring XML string', ['xml' => $s]); } - Logger::debug('Erroring XML string', ['xml' => $s]); libxml_clear_errors(); } return $x; @@ -471,7 +496,7 @@ class XML */ public static function escape($str) { - $buffer = htmlentities($str, ENT_QUOTES, 'UTF-8'); + $buffer = htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); $buffer = trim($buffer); return $buffer; @@ -485,7 +510,7 @@ class XML */ public static function unescape($s) { - $ret = html_entity_decode($s, ENT_QUOTES); + $ret = htmlspecialchars_decode($s, ENT_QUOTES); return $ret; }