Клас 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 UTF-8"?> <$ RootNodeName /> ");
}
/ / Цикл за даними пройшли дюйма
Еогеасп ($ даних $ ключ => $ значення)
{
/ / Нет цифрових клавіш в нашому XML, будь ласка!
якщо (is_numeric ($ ключ))
{
/ / Зробити рядок ключ ...
$ Ключ = "unknownNode_". (Рядок) $ ключ;
}
/ / Замінити все не буквено-цифровий
$ Ключ = preg_replace ('/ [^ az] / я', ", $ ключ);
/ / Якщо є ще один масив знайдений recrusively викликати цю функцію
якщо (is_array ($ значення))
{
$ = $ Вузол XML-> AddChild ($ ключ);
/ / Recrusive виклику.
ArrayToXML :: ToXml ($ значення $ rootNodeName, $ вузлів);
}
ще
{
/ / Додати одного вузла.
$ = Значення htmlentities ($ значення);
$ XML-> AddChild ($ ключ, $ значення);
}
}
/ / Передати назад у вигляді рядка. або просто XML-об'єкт, якщо ви хочете!
return $ XML-> asXML ();
}
}













































