Gestionnaire de fichiers - Editer - /home/wwgoat/public_html/blog/wp-content/plugins/simple-membership/lib/braintree/lib/Braintree/Xml/Generator.php
Arrière
<?php namespace Braintree\Xml; use DateTime; use DateTimeZone; use XMLWriter; use Braintree\Util; /** * PHP version 5 */ /** * Generates XML output from arrays using PHP's * built-in XMLWriter */ class Generator { /** * arrays passed to this method should have a single root element * with an array as its value * @param array $aData the array of data * @return string XML string */ public static function arrayToXml($aData) { $aData = Util::camelCaseToDelimiterArray($aData, '-'); // set up the XMLWriter $writer = new XMLWriter(); $writer->openMemory(); $writer->setIndent(true); $writer->setIndentString(' '); $writer->startDocument('1.0', 'UTF-8'); // get the root element name $aKeys = array_keys($aData); $rootElementName = $aKeys[0]; // open the root element $writer->startElement($rootElementName); // create the body self::_createElementsFromArray($writer, $aData[$rootElementName], $rootElementName); // close the root element and document $writer->endElement(); $writer->endDocument(); // send the output as string return $writer->outputMemory(); } /** * Construct XML elements with attributes from an associative array. * * @access protected * @static * @param object $writer XMLWriter object * @param array $aData contains attributes and values * @return void */ private static function _createElementsFromArray(&$writer, $aData) { if (!is_array($aData)) { if (is_bool($aData)) { $writer->text($aData ? 'true' : 'false'); } else { $writer->text($aData); } return; } foreach ($aData AS $elementName => $element) { // handle child elements $writer->startElement($elementName); if (is_array($element)) { if (array_key_exists(0, $element) || empty($element)) { $writer->writeAttribute('type', 'array'); foreach ($element AS $ignored => $itemInArray) { $writer->startElement('item'); self::_createElementsFromArray($writer, $itemInArray); $writer->endElement(); } } else { self::_createElementsFromArray($writer, $element); } } else { // generate attributes as needed $attribute = self::_generateXmlAttribute($element); if (is_array($attribute)) { $writer->writeAttribute($attribute[0], $attribute[1]); $element = $attribute[2]; } $writer->text($element); } $writer->endElement(); } } /** * convert passed data into an array of attributeType, attributeName, and value * dates sent as DateTime objects will be converted to strings * @access protected * @param mixed $value * @return array attributes and element value */ private static function _generateXmlAttribute($value) { if ($value instanceof DateTime) { return ['type', 'datetime', self::_dateTimeToXmlTimestamp($value)]; } if (is_int($value)) { return ['type', 'integer', $value]; } if (is_bool($value)) { return ['type', 'boolean', ($value ? 'true' : 'false')]; } if ($value === NULL) { return ['nil', 'true', $value]; } } /** * converts datetime back to xml schema format * @access protected * @param object $dateTime * @return string XML schema formatted timestamp */ private static function _dateTimeToXmlTimestamp($dateTime) { $dateTimeForUTC = clone $dateTime; $dateTimeForUTC->setTimeZone(new DateTimeZone('UTC')); return ($dateTimeForUTC->format('Y-m-d\TH:i:s') . 'Z'); } private static function _castDateTime($string) { try { if (empty($string)) { return false; } $dateTime = new DateTime($string); return self::_dateTimeToXmlTimestamp($dateTime); } catch (Exception $e) { // not a datetime return false; } } } class_alias('Braintree\Xml\Generator', 'Braintree_Xml_Generator');
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Génération de la page: 0.01 |
proxy
|
phpinfo
|
Réglages