КСМЛ (Ектенсибле Маркуп Лангуаге) је једна врста језика за означавање који се користи за складиштење података у формату читљивом за људе. Разликује се од других језика за означавање. Сваку ознаку овог језика дефинише корисник. Коришћење КСМЛ -а је боље решење за складиштење мале количине података када не желите да користите било коју базу података за складиштење података. Подаци из КСМЛ документа могу се лако приступити и користити у било којој веб апликацији помоћу ПХП скрипте. Како се КСМЛ документ може рашчланити и складиштити у асоцијативни низ приказано је у овом водичу.
Потребне функције
Неке уграђене функције се користе за претварање КСМЛ садржаја у асоцијативни ПХП низ. Сврхе различитих функција су објашњене у наставку.
филе_гет_цонтентс ():
Ова функција враћа низ података претварањем било којих КСМЛ података. Као аргумент узима било које име КСМЛ датотеке.
симплекмл_лоад_стринг ():
Ова функција враћа КСМЛ објект претварањем података КСМЛ низа. Као аргумент узима податке КСМЛ низа.
симплекмл_лоад_филе ():
Ова функција враћа КСМЛ објект претварањем садржаја КСМЛ датотеке. Име КСМЛ датотеке узима као аргумент.
СимплеКСМЛЕлемент ():
Користи се за креирање КСМЛ објекта од КСМЛ података. Вредност КСМЛ садржаја узима као аргумент.
јсон_енцоде ():
Враћа ЈСОН објект претварањем КСМЛ објекта. За аргумент узима КСМЛ објектну променљиву.
јсон_децоде ():
Враћа асоцијативни ПХП низ конвертовањем ЈСОН података. За аргумент узима ЈСОН објектну променљиву.
Креирајте КСМЛ датотеку
Морат ћете створити КСМЛ датотеку или дефинирати КСМЛ податке у скрипти да бисте знали начин претварања КСМЛ података у асоцијативни ПХП низ. Направите КСМЛ датотеку под називом цоурсес.кмл са следећим садржајем и сачувајте је на локацији на којој се налази ПХП скрипта. Датотека садржи подређене елементе под родитељским елементом. Дакле, дводимензионални асоцијативни низ ће се генерисати након претварања следеће КСМЛ датотеке у ПХП низ.
курсеви.кмл
верзија='1.0'?>>
Том Бутлер и Кевин Ианк
СитеПоинт
Водите прво ПХП & МиСКЛ
Линн Беигхлеи & Мицхаел Моррисон
О’Реилли
Пример-1: Претворите садржај КСМЛ датотеке у асоцијативни низ без грешке при провери
Следећа скрипта приказује употребу функција филе_гет_цонтентс () и симплекмл_лоад_стринг () за креирање КСМЛ објекта. Овде се датотека цоурсес.кмл користи за конверзију која је створена раније. Затим се функције јсон_енцоде () и јсон_децоде () користе за добијање асоцијативног низа након конверзије садржаја КСМЛ датотеке. Ако нема грешке у КСМЛ садржају, следећа скрипта неће приказати грешку. Овде, | _+_ | таг се користи за штампање низа на форматиран начин.
// Дефинишите постојећу КСМЛ датотеку
$ кмл = 'цоурсес.кмл';
// Читање целог садржаја КСМЛ датотеке у облику КСМЛ низа
$ кмлДата = филе_гет_цонтентс ($ кмл);
// Претворимо податке КСМЛ низа у КСМЛ објект
$ кмлОбјецт = симплекмл_лоад_стринг ($ кмлДата);
// Претворимо КСМЛ објект у ЈСОН објект
$ јсонОбјецт = јсон_енцоде ($ кмлОбјецт);
// Претворимо ЈСОН објект у асоцијативни низ
$ ассАрраи = јсон_децоде ($ јсонОбјецт, истина);
// Одштампај структуру асоцијативног низа
Избацио '
';
?>
Излаз:
Следећи излаз ће се појавити након извршавања ПХП скрипте. Овде се дводимензионални низ генерише на основу садржаја КСМЛ датотеке, цоурсес.кмл.
Пример 2: Претворите садржај КСМЛ датотеке у асоцијативни низ са грешком при провери
Боље је проверити грешку приликом претварања КСМЛ -а у асоцијативни низ. Кодирачу ће помоћи да отклони грешке у коду ако је провера грешака спроведена у скрипти. Следећа скрипта приказује начине претварања садржаја КСМЛ датотеке у асоцијативни низ помоћу функције симплекмл_лоад_филе () са руковањем грешкама. Функција либкмл_усе_интернал_еррорс () се користи са ТРУЕ вредношћу да омогући руковање грешкама. Ако садржај КСМЛ датотеке који се користи у скрипти садржи било коју грешку, функција симплекмл_лоад_филе () ће вратити вредност фалсе, а порука о грешци ће се одштампати помоћу функције либкмл_гет_еррорс (). Ако нема грешке у КСМЛ датотеци, тада ће се садржај датотеке правилно претворити у дводимензионални асоцијативни низ.
// Омогућава руковање грешкама корисника
либкмл_усе_интернал_еррорс (ИСТИНА);
// Креирање КСМЛ објекта
$ објКсмл = симплекмл_лоад_филе ('цоурсес.кмл');
// Штампање грешке ако КСМЛ објекат враћа фалсе
ако ($ објКсмл === ФАЛСЕ) {
Избацио 'Дошло је до грешака при рашчлањивању КСМЛ датотеке. н';
за сваки( либкмл_гет_еррорс () као $ еррор) {
Избацио $ еррор->порука;
}
излаз ;
}
// Претворимо КСМЛ објект у ЈСОН објект
$ објЈсон = јсон_енцоде ($ објКсмл);
// Претворимо ЈСОН објект у асоцијативни низ
$ ассарр = јсон_децоде ($ објЈсон, ИСТИНА);
// Одштампај структуру асоцијативног низа
Избацио '
';
print_r ($assArray);
echo '';
?>
Излаз:
Следећи излаз ће се појавити након извршавања ПХП скрипте. Овде нема грешке у КСМЛ датотеци. Дакле, дводимензионални низ је генерисао као и претходни пример на основу садржаја КСМЛ датотеке, цоурсес.кмл.
Пример 3: Претворите КСМЛ садржај у асоцијативни низ
Следећа скрипта приказује начин претварања КСМЛ података у асоцијативни низ помоћу функције СимплеКСМЛЕлемент (). У скрипти, КСМЛ садржај је ускладиштен у променљивој под називом $ кмл која се користи као аргумент функције, СимплеКСМЛЕлемент (). Затим се функције јсон_енцоде () и јсон_децоде () користе за добијање асоцијативног низа након конверзије садржаја КСМЛ датотеке.
// Дефинишите КСМЛ променљиву
$ кмл = <<
[заштићена е -пошта]
12 / А, Дханмонди
Дхака
[заштићена е -пошта]
156, Мотив
Дхака
[заштићена е -пошта]
21 / Б, Могбазар
Дхака
КСМЛ;
// Креирање КСМЛ објекта
$ кмлОбјецт = НоваСимплеКСМЛЕлемент($ кмл);
// Креирање ЈСОН објекта
$ јсонОбјецт = јсон_енцоде ($ кмлОбјецт);
// Претворимо ЈСОН објект у асоцијативни низ
$ ассАрраи = јсон_децоде ($ јсонОбјецт, истина);
// Одштампај структуру асоцијативног низа
Избацио '
';
print_r ($assarr);
echo '';
?>
Излаз:
Следећи излаз ће се појавити након извршавања ПХП скрипте. Овде се дводимензионални низ генерише на основу садржаја КСМЛ променљиве, $ кмл.
Закључак:
Постоје три различита начина претварања КСМЛ садржаја у асоцијативни низ који је приказан у овом водичу. Ово ће помоћи читаоцима да знају начин рада са КСМЛ подацима и да рашчлане податке из КСМЛ садржаја помоћу једноставне ПХП скрипте.