From 186cd1d41578fcfc78f11d561880b332ce596617 Mon Sep 17 00:00:00 2001 From: Adam Magness Date: Mon, 5 Nov 2018 07:31:45 -0500 Subject: [PATCH] Revert "Move methods to new Util/Strings class" This reverts commit 97fcf23371cb24c7c9dbb144ed7f250813176f45. --- src/Util/Strings.php | 51 -------------------------------------------- src/Util/XML.php | 50 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 44 insertions(+), 57 deletions(-) delete mode 100644 src/Util/Strings.php diff --git a/src/Util/Strings.php b/src/Util/Strings.php deleted file mode 100644 index 5efc214af..000000000 --- a/src/Util/Strings.php +++ /dev/null @@ -1,51 +0,0 @@ -"); self::fromArray($value, $root, $remove_header, $namespaces, false); } else { - $root = new SimpleXMLElement("<".$key.">".Strings::escape($value).""); + $root = new SimpleXMLElement("<".$key.">".self::escape($value).""); } $dom = dom_import_simplexml($root)->ownerDocument; @@ -105,7 +104,7 @@ class XML } if (!is_array($value)) { - $element = $xml->addChild($key, Strings::escape($value), $namespace); + $element = $xml->addChild($key, self::escape($value), $namespace); } elseif (is_array($value)) { $element = $xml->addChild($key, null, $namespace); self::fromArray($value, $element, $remove_header, $namespaces, false); @@ -124,7 +123,7 @@ class XML public static function copy(&$source, &$target, $elementname) { if (count($source->children()) == 0) { - $target->addChild($elementname, Strings::escape($source)); + $target->addChild($elementname, self::escape($source)); } else { $child = $target->addChild($elementname); foreach ($source->children() as $childfield => $childentry) { @@ -145,11 +144,11 @@ class XML */ public static function createElement($doc, $element, $value = "", $attributes = []) { - $element = $doc->createElement($element, Strings::escape($value)); + $element = $doc->createElement($element, self::escape($value)); foreach ($attributes as $key => $value) { $attribute = $doc->createAttribute($key); - $attribute->value = Strings::escape($value); + $attribute->value = self::escape($value); $element->appendChild($attribute); } return $element; @@ -463,4 +462,43 @@ class XML return $first_item->attributes; } + + /** + * escape text ($str) for XML transport + * @param string $str + * @return string Escaped text. + */ + public static function escape($str) + { + $buffer = htmlspecialchars($str, ENT_QUOTES, "UTF-8"); + $buffer = trim($buffer); + + return $buffer; + } + + /** + * undo an escape + * @param string $s xml escaped text + * @return string unescaped text + */ + public static function unescape($s) + { + $ret = htmlspecialchars_decode($s, ENT_QUOTES); + return $ret; + } + + /** + * apply escape() to all values of array $val, recursively + * @param array $val + * @return array + */ + public static function arrayEscape($val) + { + if (is_bool($val)) { + return $val?"true":"false"; + } elseif (is_array($val)) { + return array_map('XML::arrayEscape', $val); + } + return self::escape((string) $val); + } }