класа АрраиТоКСМЛ
{
/ **
* Основна функција за конвертовање у КСМЛ документа.
* Пасс у мулти димензионални низ и то преко петље рецрусивели и гради КСМЛ документ.
*
* @ Парам арраи $ дата
* @ Парам стринг $ роотНодеНаме - шта желите да буде корен чвор - дефаултсто подаци.
* @ Парам СимплеКСМЛЕлемент $ КСМЛ - треба само да се рекурзивно користити
* @ Повратак ниска КСМЛ
* /
публиц статиц функција тоКсмл ($ дата, $ роотНодеНаме = 'Подаци', $ кмл = нулл)
{
/ / Искључивање режима за компатибилност и једноставан КСМЛ баца дрхти, ако не урадите.
ако (ини_гет ('зенд.зе1_цомпатибилити_моде') == 1)
{
Види профил ('зенд.зе1_цомпатибилити_моде', 0);
}
иф ($ кмл == НУЛЛ)
{
$ Ксмл = симплекмл_лоад_стринг ("<кмл версион = '1 .0 То енцодинг =" УТФ-8 '?> <$ РоотНодеНаме /> ");
}
/ / Петља кроз подацима прошло ин
фореацх ($ подаци као $ кеи => $ вредност)
{
/ / Без нумерички тастери у нашој КСМЛ плеасе!
ако (ис_нумериц ($ кеи))
{
/ / Направи стринг кључ ...
$ Кеи = "ункновнНоде_". (Стринг) $ тастер;
}
/ / Замени ништа не алфа нумерички
$ Кеи = прег_реплаце ("/ [^ аз] / и ',", $ тастер);
/ / Ако постоји неки други низ пронађен рецрусивели називају ову функцију
ако (ис_арраи ($ вредност))
{
$ Чвор = $ кмл-> аддЦхилд ($ кеи);
/ / Рецрусиве позив.
АрраиТоКСМЛ :: тоКсмл ($ валуе, $ роотНодеНаме, $ чвор);
}
друго
{
/ / Додај један чвор.
$ Валуе = хтмлентитиес ($ валуе);
$ Ксмл-> аддЦхилд ($ кеи, $ вредност);
}
}
/ / Назад проћи као стринг. или једноставно КСМЛ објекат, ако желите!
врати $ кмл-> асКСМЛ ();
}
}













































