klasë ArrayToXML
{
/ **
* Funksioni kryesor për konvertimin në një dokument XML.
* Pass në një grup shumë dimensionale dhe kjo recrusively sythe përmes dhe ndërton një dokument XML.
*
* @ Param array dollarë të dhëna
* @ Param $ string rootNodeName - atë që ju dëshironi nyjen rrënjë të jetë - të dhëna defaultsto.
* @ Param SimpleXMLElement $ XML - duhet të përdoret vetëm Recursively
* @ Kthimi string XML
* /
publik toXml statik funksion ($ dhënave, $ rootNodeName = 'të dhëna', $ xml = null)
{
/ / Fik regjim compatibility si xml thjeshtë hedh një tundet në qoftë se ju nuk e bëni.
në qoftë se (ini_get ('zend.ze1_compatibility_mode') == 1)
{
ini_set ('zend.ze1_compatibility_mode', 0);
}
if ($ xml == null)
{
$ Xml = simplexml_load_string ("<version xml =" Nr encoding = "'1 .0 utf-8"?> <$ RootNodeName /> ");
}
/ / Loop nëpërmjet të dhënave kaloi in
foreach ($ $ dhënave si çelësi => $ vlera)
{
/ / Nuk ka çelësat numerike në XML tonë ju lutem!
if (is_numeric ($ kyç))
{
/ / Të bëjë string kyç ...
$ Kyç = "unknownNode_". (String) $ kyç;
}
/ / Zëvendësojë asgjë nuk alfa numerike
$ Kyç = preg_replace ('/ [^ az] / i', ", $ kyç);
/ / Në qoftë se ka një koleksion të gjetur recrusively quajmë këtë funksion
if (is_array ($ vlera))
{
$ Nyje = $ xml-> addChild ($ kyç);
/ / Recrusive telefonatë.
ArrayToXML :: toXml ($ vlera, $ rootNodeName, $ nyjen);
}
tjetër
{
/ / Të shtuar nyje të vetme.
Dollarë htmlentities = vlera ($ vlera);
$ Xml-> addChild ($ kyç, $ vlera);
}
}
/ / Kalojë përsëri si string. apo objekt të thjeshtë xml qoftë se ju dëshironi!
kthehen $ XML-> asXML ();
}
}













































