בכיתה ArrayToXML
{
/ **
* הפונקציה העיקרית של המרת מסמך XML.
* לעבור מערך רב מימדי וזה recrusively לולאות באמצעות ובונה את מסמך XML.
*
* @ מערך פרמטר דולר הנתונים
* @ פרמטר מחרוזת $ rootNodeName - מה אתה רוצה צומת שורש להיות - נתונים defaultsto.
* @ $ SimpleXMLElement פרמטר XML - יש להשתמש רק באופן רקורסיבי
* @ בתמורה מחרוזת XML
* /
toXml הציבור פונקציה סטטית ($ נתונים, $ rootNodeName = 'נתונים', $ xml = null)
{
/ / לבטל את מצב תאימות כמו XML פשוט זורק רעוע אם לא.
אם (ini_get ("zend.ze1_compatibility_mode") == 1)
{
ini_set ("zend.ze1_compatibility_mode ', 0);
}
אם ($ XML == null)
{
$ Xml = simplexml_load_string ("<הגרסה XML =" קידוד = ''1 0.0-UTF-8 "?> <$ RootNodeName />");
}
/ / לולאה באמצעות הנתונים עברו פנימה
foreach ($ נתונים כמו $ key => $ value)
{
/ / אין מקשי הספרות ב-XML שלנו בבקשה!
אם (is_numeric ($ מפתח))
{
/ / את מחרוזת המפתח ...
$ Key = "unknownNode_". (מחרוזת) $ המפתח;
}
/ / להחליף שום דבר לא אלפא נומרי
$ Key = preg_replace ('/ [^ az] / i ",", $ מפתח);
/ / אם יש עוד מגוון מצא recrusively קוראים לזה פונקציה
אם (is_array ($ לערך))
{
הצומת $ = $ xml-> addChild ($ מפתח);
/ / Recrusive השיחה.
ArrayToXML :: toXml ($ ערך, rootNodeName $, $ צומת);
}
אחר
{
/ / להוסיף צומת אחד.
$ = ערך htmlentities ($ לערך);
$ Xml-> addChild ($ מפתח, $ ערך);
}
}
/ / לעבור חזרה כמחרוזת. או אובייקט XML פשוט אם אתה רוצה!
לחזור $ xml-> asXML ();
}
}













































