Klasa ArrayToXML
{
/ **
* Glavna funkcija za prebacivanje na XML dokumenta.
* Pass u više dimenzionalnom polju i to recrusively petlje kroz i gradi XML dokument.
*
* @ Param data array dolara
* @ Param string $ rootNodeName - ono što želite korijen čvor biti - defaultsto podataka.
* @ Param SimpleXMLElement $ XML - treba koristiti samo rekurzivno
* @ Povratak string XML
* /
public static toXml funkcija ($ podatci, $ rootNodeName = 'Podaci', $ xml = null)
{
/ / Isključivanje način kompatibilnosti kao jednostavan xml baca nesiguran, ako to ne čine.
if (ini_get ('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($ xml == null)
{
$ Xml = simplexml_load_string ("<xml version = '1 .0 To encoding =" utf-8 '?> <$ RootNodeName /> ");
}
/ / Petlja kroz podatke donosi rezervirati
foreach ($ $ podaci kao ključ => $ vrijednost)
{
/ / Nema brojčane tipke u našem XML molim!
if (is_numeric ($ ključ))
{
/ / String napraviti ključ ...
$ Ključ = "unknownNode_". (String) $ ključ;
}
/ / Zamijeniti ništa nije alfa numerička
$ Ključ = preg_replace ('/ [^ az] / i', ", $ ključ);
/ / Ako postoji još jedan niz pronađena recrusively nazvati ovu funkciju
if (is_array ($ vrijednost))
{
Čvor $ = $ xml-> addChild ($ ključ);
/ / Recrusive poziv.
ArrayToXML :: toXml ($ vrijednost, rootNodeName $, $ čvor);
}
drugo
{
/ / Dodaj jednu čvor.
Dolara vrijednost = htmlentities ($ vrijednost);
$ Xml-> addChild ($ ključ, $ vrijednost);
}
}
/ / Proći još niz. ili jednostavno xml objekt ako želite!
povratak $ XML-> asXML ();
}
}













































