clasa ArrayToXML
{
/ **
* Functia principala pentru convertirea la un document XML.
* Se trece într-o gamă dimensională şi de mai multe bucle prin acest recrusively şi construieşte un document XML.
*
* @ Param array $ data
* @ Param string $ rootNodeName - ceea ce vrei nod rădăcină de a fi - date defaultsto.
* @ Param $ SimpleXMLElement XML - ar trebui să fie utilizat numai recursiv
* @ Return string XML
* /
funcţiei publice toXml statice ($ date, $ rootNodeName = "date", $ xml = null)
{
/ / Dezactiva modul de compatibilitate la fel de simplu XML aruncă o instabil, dacă nu faci.
în cazul în care (ini_get ("zend.ze1_compatibility_mode") == 1)
{
ini_set ("zend.ze1_compatibility_mode ', 0);
}
if ($ xml == null)
{
$ Xml = simplexml_load_string ("<XML versiunea 0.0 = '1 'encoding =" UTF-8 "?> <$ RootNodeName />");
}
/ / Bucla prin intermediul datelor trecut inch
foreach ($ date de la $ cheie => $ valoare)
{
/ / Nu tastele numerice în XML nostru vă rog!
în cazul în care (is_numeric ($ cheie))
{
/ / Face string-cheie ...
$ Cheie = "unknownNode_". (String) $ cheie;
}
/ / Înlocuiţi nimic nu alfa numeric
$ Cheie = preg_replace ("/ [^ az] / i", ", $ cheie);
/ / Dacă există un alt tablou găsit recrusively apela această funcţie
în cazul în care (is_array ($ valoare))
{
Nod $ = $ xml-> addChild ($ cheie);
/ / Recrusive apel.
ArrayToXML :: toXml ($ valoare, $ rootNodeName, $ nod);
}
altfel
{
/ / Adauga singur nod.
= Valoarea de $ htmlentities ($ valoare);
$ Xml-> addChild ($ cheie, $ valoare);
}
}
/ / Treci înapoi în şir. sau simplu obiect XML, dacă doriţi!
a reveni $ xml-> asXML ();
}
}













































