клас 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 == нула)
{
$ XML = simplexml_load_string ("<XML версия = '1 .0 'кодиране =" UTF-8?> <$ RootNodeName /> ");
}
/ / Веригата данните премина инча
foreach ($ данни $ ключ => $ стойност)
{
/ / Не цифровите клавиши в нашата XML, моля!
ако (функцията is_numeric ($ ключ))
{
/ / Да низ ключ ...
$ Ключ = "unknownNode_". (Низ) $ ключ;
}
/ / Замяна нищо не алфа цифров
$ Ключ = preg_replace ('/ [^ А-Я] / I' ", $ ключ);
/ / Ако има друг масив recrusively обадете тази функция
ако (is_array ($ стойност))
{
$ Възел = $ XML-> addChild ($ ключ);
/ / Recrusive разговор.
ArrayToXML :: toXml ($ стойност $ rootNodeName, $ възел);
}
още
{
/ / Добавите един възел.
$ Htmlentities стойност = ($ стойност);
$ XML-> addChild ($ ключ, стойност);
}
}
/ / Пас назад като низ. или просто XML обект, ако искате!
върне $ XML-> asXML ();
}
}













































