تحويل PHP صفيف إلى كائن XML XML أو بسيط

فئة ArrayToXML

{

/ **

* وتتمثل المهمة الرئيسية للتحويل إلى مستند XML.

* اجتياز في مجموعة 1 متعددة الأبعاد، وهذا من خلال حلقات recrusively ويتراكم مستند XML.

*

* @ مجموعة المعلمة $ بيانات

* @ المعلمة سلسلة $ rootNodeName - ماذا تريد أن تكون عقدة الجذر - بيانات defaultsto.

* @ SimpleXMLElement المعلمة $ XML - يجب أن يستخدم فقط بشكل متكرر
* @ عودة سلسلة XML

* /

جمهور toXml وظيفة ثابتة ($ البيانات، $ rootNodeName = 'البيانات'، $ XML = فارغة)

{

/ / إيقاف تشغيل وضع التوافق كما XML بسيط يلقي متهاد إذا لم تفعل ذلك.

إذا كان (ini_get ('zend.ze1_compatibility_mode') == 1)

{

ini_set ('zend.ze1_compatibility_mode'، 0)؛

}

إذا دولار (XML == فارغة)

{

$ = simplexml_load_string XML ("<إصدار XML = '1 .0 'ترميز =' UTF-8 '؟> <$ rootNodeName />")؛

}

/ مر / حلقة عبر البيانات فيه.

foreach ($ $ البيانات ومفتاح => قيمة $)

{

/ / لا مفاتيح رقمية في XML لدينا من فضلك!

إذا كان (is_numeric ($ المفتاح))

{

/ / جعل سلسلة مفتاح ...

$ مفتاح = "unknownNode_". (سلسلة) $ الرئيسية؛

}

/ / يحل محل أي شيء ليس ألفا رقمية

$ مفتاح = preg_replace ('/ [^ ي] / أنا "،"، $ مفتاح)؛

/ / اذا كان هناك مجموعة أخرى وجدت دعوة recrusively هذه الوظيفة

إذا كان (is_array ($ قيمة))

{

$ $ = العقدة XML-> addChild ($ مفتاح)؛

/ / recrusive المكالمة.

ArrayToXML :: toXml ($ قيمة، rootNodeName $ $، العقدة)؛

}

آخر

{

/ / إضافة عقدة واحدة.

$ htmlentities = قيمة ($ قيمة)؛

$ XML-> addChild ($ مفتاح، قيمة $)؛

}

}

/ / تمرير يعود إلى سلسلة. أو كائن XML بسيطة إذا كنت تريد!

العودة دولار XML-> asXML ()؛

}

}

يمكنك ترك وردا ، أو تعقيب من خلال موقعك الشخصي.

ترك الرد

يجب عليك تسجيل الدخول إلى حسابك للتعليق.