فئة 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 ()؛
}
}













































