diff --git a/src/Util/Strings.php b/src/Util/Strings.php new file mode 100644 index 000000000..5efc214af --- /dev/null +++ b/src/Util/Strings.php @@ -0,0 +1,51 @@ +"); self::fromArray($value, $root, $remove_header, $namespaces, false); } else { - $root = new SimpleXMLElement("<".$key.">".self::escape($value).""); + $root = new SimpleXMLElement("<".$key.">".Strings::escape($value).""); } $dom = dom_import_simplexml($root)->ownerDocument; @@ -104,7 +105,7 @@ class XML } if (!is_array($value)) { - $element = $xml->addChild($key, self::escape($value), $namespace); + $element = $xml->addChild($key, Strings::escape($value), $namespace); } elseif (is_array($value)) { $element = $xml->addChild($key, null, $namespace); self::fromArray($value, $element, $remove_header, $namespaces, false); @@ -123,7 +124,7 @@ class XML public static function copy(&$source, &$target, $elementname) { if (count($source->children()) == 0) { - $target->addChild($elementname, self::escape($source)); + $target->addChild($elementname, Strings::escape($source)); } else { $child = $target->addChild($elementname); foreach ($source->children() as $childfield => $childentry) { @@ -144,11 +145,11 @@ class XML */ public static function createElement($doc, $element, $value = "", $attributes = []) { - $element = $doc->createElement($element, self::escape($value)); + $element = $doc->createElement($element, Strings::escape($value)); foreach ($attributes as $key => $value) { $attribute = $doc->createAttribute($key); - $attribute->value = self::escape($value); + $attribute->value = Strings::escape($value); $element->appendChild($attribute); } return $element; @@ -462,43 +463,4 @@ 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); - } }