Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>take a look at my version</p> <pre><code> class XMLSerializer { /** * * The most advanced method of serialization. * * @param mixed $obj =&gt; can be an objectm, an array or string. may contain unlimited number of subobjects and subarrays * @param string $wrapper =&gt; main wrapper for the xml * @param array (key=&gt;value) $replacements =&gt; an array with variable and object name replacements * @param boolean $add_header =&gt; whether to add header to the xml string * @param array (key=&gt;value) $header_params =&gt; array with additional xml tag params * @param string $node_name =&gt; tag name in case of numeric array key */ public static function generateValidXmlFromMixiedObj($obj, $wrapper = null, $replacements=array(), $add_header = true, $header_params=array(), $node_name = 'node') { $xml = ''; if($add_header) $xml .= self::generateHeader($header_params); if($wrapper!=null) $xml .= '&lt;' . $wrapper . '&gt;'; if(is_object($obj)) { $node_block = strtolower(get_class($obj)); if(isset($replacements[$node_block])) $node_block = $replacements[$node_block]; $xml .= '&lt;' . $node_block . '&gt;'; $vars = get_object_vars($obj); if(!empty($vars)) { foreach($vars as $var_id =&gt; $var) { if(isset($replacements[$var_id])) $var_id = $replacements[$var_id]; $xml .= '&lt;' . $var_id . '&gt;'; $xml .= self::generateValidXmlFromMixiedObj($var, null, $replacements, false, null, $node_name); $xml .= '&lt;/' . $var_id . '&gt;'; } } $xml .= '&lt;/' . $node_block . '&gt;'; } else if(is_array($obj)) { foreach($obj as $var_id =&gt; $var) { if(!is_object($var)) { if (is_numeric($var_id)) $var_id = $node_name; if(isset($replacements[$var_id])) $var_id = $replacements[$var_id]; $xml .= '&lt;' . $var_id . '&gt;'; } $xml .= self::generateValidXmlFromMixiedObj($var, null, $replacements, false, null, $node_name); if(!is_object($var)) $xml .= '&lt;/' . $var_id . '&gt;'; } } else { $xml .= htmlspecialchars($obj, ENT_QUOTES); } if($wrapper!=null) $xml .= '&lt;/' . $wrapper . '&gt;'; return $xml; } /** * * xml header generator * @param array $params */ public static function generateHeader($params = array()) { $basic_params = array('version' =&gt; '1.0', 'encoding' =&gt; 'UTF-8'); if(!empty($params)) $basic_params = array_merge($basic_params,$params); $header = '&lt;?xml'; foreach($basic_params as $k=&gt;$v) { $header .= ' '.$k.'='.$v; } $header .= ' ?&gt;'; return $header; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload