X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fserializer%2FEncoder%2FXmlEncoder.php;h=e8a24a39d69d06f083bd58a3f8a4834f58497290;hp=40f61167b36989e1f2a630cb86f931b85f25a9de;hb=eba34333e3c89f208d2f72fa91351ad019a71583;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae diff --git a/vendor/symfony/serializer/Encoder/XmlEncoder.php b/vendor/symfony/serializer/Encoder/XmlEncoder.php index 40f61167b..e8a24a39d 100644 --- a/vendor/symfony/serializer/Encoder/XmlEncoder.php +++ b/vendor/symfony/serializer/Encoder/XmlEncoder.php @@ -301,11 +301,19 @@ class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, Dec $data = array(); foreach ($node->attributes as $attr) { - if (ctype_digit($attr->nodeValue)) { - $data['@'.$attr->nodeName] = (int) $attr->nodeValue; - } else { + if (!is_numeric($attr->nodeValue)) { $data['@'.$attr->nodeName] = $attr->nodeValue; + + continue; + } + + if (false !== $val = filter_var($attr->nodeValue, FILTER_VALIDATE_INT)) { + $data['@'.$attr->nodeName] = $val; + + continue; } + + $data['@'.$attr->nodeName] = (float) $attr->nodeValue; } return $data; @@ -460,7 +468,7 @@ class XmlEncoder extends SerializerAwareEncoder implements EncoderInterface, Dec */ private function needsCdataWrapping($val) { - return preg_match('/[<>&]/', $val); + return 0 < preg_match('/[<>&]/', $val); } /**