XML (שפת סימון ניתנת להרחבה) היא סוג אחד של שפת סימון המשמשת לאחסון הנתונים בפורמט קריא לאדם. הוא שונה משפות סימון אחרות. כל תגית בשפה זו מוגדרת על ידי המשתמש. שימוש ב- XML הוא הפתרון הטוב יותר לאחסון כמות נתונים קטנה כאשר אינך רוצה להשתמש בשום בסיס נתונים לאחסון נתונים. ניתן לגשת בקלות לנתונים ממסמך ה- XML ולהשתמש בהם בכל יישום אינטרנט באמצעות סקריפט PHP. כיצד ניתן לנתח ולשמור את מסמך ה- XML במערך אסוציאטיבי מוצג במדריך זה.
פונקציות הכרחיות
חלק מהפונקציות המובנות משמשות להמרת תוכן ה- XML למערך PHP אסוציאטיבי. מטרות הפונקציות השונות מוסברות להלן.
file_get_contents ():
פונקציה זו מחזירה את נתוני המחרוזת על ידי המרת נתוני XML. זה לוקח כל שם קובץ XML כארגומנט.
simplexml_load_string ():
פונקציה זו מחזירה את אובייקט ה- XML על ידי המרת נתוני מחרוזת ה- XML. זה לוקח נתוני מחרוזת XML כארגומנט.
simplexml_load_file ():
פונקציה זו מחזירה את אובייקט ה- XML על ידי המרת תוכן קובץ XML. הוא לוקח את שם קובץ ה- XML כארגומנט.
SimpleXMLElement ():
הוא משמש ליצירת אובייקט XML מנתוני XML. זה לוקח את ערך תוכן ה- XML כארגומנט.
json_encode ():
הוא מחזיר את אובייקט JSON על ידי המרת אובייקט ה- XML. הוא לוקח את משתנה אובייקט ה- XML כארגומנט.
json_decode ():
הוא מחזיר את מערך ה- PHP האסוציאטיבי על ידי המרת נתוני JSON. הוא לוקח את משתנה האובייקט JSON כארגומנט.
צור קובץ XML
תידרש ליצור קובץ XML או להגדיר נתוני XML בתסריט כדי לדעת כיצד להמיר נתוני XML למערך PHP אסוציאטיבי. צור קובץ XML בשם courses.xml עם התוכן הבא ושמור אותו במיקום שבו נמצא סקריפט ה- PHP. הקובץ מכיל רכיבי ילדים מתחת לרכיב האב. אז מערך אסוציאטיבי דו-ממדי ייווצר לאחר המרת קובץ ה- XML הבא למערך PHP.
courses.xml
גִרְסָה='1.0'?>>
טום באטלר וקווין יאנק
SitePoint
ראש First PHP & MySQL
לין ביגלי ומייקל מוריסון
או 'ריילי
דוגמה 1: המרת תוכן קובץ XML למערך אסוציאטיבי מבלי לבדוק שגיאה
הסקריפט הבא מציג את השימושים בפונקציות file_get_contents () ו- simplexml_load_string () ליצירת אובייקט XML. כאן, קובץ courses.xml משמש להמרה שנוצרה קודם לכן. לאחר מכן, הפונקציה json_encode () וה- json_decode () משמשים להשגת המערך האסוציאטיבי לאחר המרת תוכן קובץ ה- XML. אם אין שגיאה בתוכן ה- XML, לא תוצג שגיאה בסקריפט הבא. כאן, | _+_ | tag משמש להדפסת המערך בצורה מעוצבת.
// הגדר את קובץ ה- XML הקיים
$ xml = 'courses.xml';
// קרא את כל התוכן של קובץ ה- XML כמחרוזת XML
$ xmlData = file_get_contents ($ xml);
// המרת נתוני מחרוזת XML לאובייקט XML
$ xmlObject = simplexml_load_string ($ xmlData);
// המרת אובייקט XML לאובייקט JSON
$ jsonObject = json_encode ($ xmlObject);
// המר את אובייקט JSON למערך אסוציאטיבי
$ assArray = json_decode ($ jsonObject, נָכוֹן);
// הדפס את מבנה המערך האסוציאטיבי
זרק '
';
?>
תְפוּקָה:
הפלט הבא יופיע לאחר ביצוע סקריפט ה- PHP. כאן נוצר מערך דו ממדי המבוסס על התוכן של קובץ ה- XML, courses.xml.
דוגמה 2: המרת תוכן קובץ XML למערך אסוציאטיבי עם שגיאת בדיקה
עדיף לבדוק שגיאה בעת המרת XML למערך אסוציאטיבי. זה יעזור לקודד לאתר באגים בקוד אם בדיקת השגיאות מיושמת בתסריט. הסקריפט הבא מציג את הדרכים להמיר תוכן קובץ XML למערך אסוציאטיבי באמצעות פונקציית simplexml_load_file () עם טיפול בשגיאות. הפונקציה libxml_use_internal_errors () משמשת עם ערך TRUE כדי לאפשר טיפול בשגיאות. אם תוכן קובץ ה- XML המשמש בתסריט מכיל שגיאה כלשהי, הפונקציה simplexml_load_file () תחזיר שקר והודעת השגיאה תודפס באמצעות הפונקציה libxml_get_errors (). אם אין שגיאה בקובץ ה- XML, הרי שתוכן הקובץ יומר כראוי למערך אסוציאטיבי דו-ממדי.
// אפשר טיפול בשגיאות משתמש
libxml_use_internal_errors (נָכוֹן);
// צור אובייקט XML
$ objXml = קובץ simplexml_load_file ('courses.xml');
// שגיאת הדפסה אם אובייקט ה- XML מחזיר שקר
אם ($ objXml === שֶׁקֶר) {
זרק 'היו שגיאות בניתוח קובץ ה- XML. n';
לכל אחד( libxml_get_errors () כפי ש שגיאת $) {
זרק שגיאת $->הוֹדָעָה;
}
יְצִיאָה ;
}
// המרת אובייקט XML לאובייקט JSON
$ objJson = json_encode ($ objXml);
// המר את אובייקט JSON למערך אסוציאטיבי
$ assarr = json_decode ($ objJson, נָכוֹן);
// הדפס את מבנה המערך האסוציאטיבי
זרק '
';
print_r ($assArray);
echo '';
?>
תְפוּקָה:
הפלט הבא יופיע לאחר ביצוע סקריפט ה- PHP. כאן, אין שגיאה בקובץ ה- XML. אז, מערך דו ממדי נוצר כמו הדוגמה הקודמת המבוסס על התוכן של קובץ ה- XML, courses.xml.
דוגמה 3: המרת תוכן XML למערך אסוציאטיבי
התסריט הבא מציג את הדרך להמיר נתוני XML למערך אסוציאטיבי באמצעות הפונקציה SimpleXMLElement (). בתסריט, תוכן ה- XML מאוחסן במשתנה בשם $ xml המשמש כארגומנט של הפונקציה, SimpleXMLElement (). לאחר מכן, הפונקציה json_encode () וה- json_decode () משמשים להשגת המערך האסוציאטיבי לאחר המרת תוכן קובץ ה- XML.
// הגדר את משתנה ה- XML
$ xml = <<
[מוגן בדוא'ל]
12 / A, Dhanmondi
דאקה
[מוגן בדוא'ל]
156, מוטיב
דאקה
[מוגן בדוא'ל]
21 / B, מוגבזר
דאקה
XML;
// צור אובייקט XML
$ xmlObject = חָדָשׁSimpleXMLElement($ xml);
// צור אובייקט JSON
$ jsonObject = json_encode ($ xmlObject);
// המר את אובייקט JSON למערך אסוציאטיבי
$ assArray = json_decode ($ jsonObject, נָכוֹן);
// הדפס את מבנה המערך האסוציאטיבי
זרק '
';
print_r ($assarr);
echo '';
?>
תְפוּקָה:
הפלט הבא יופיע לאחר ביצוע סקריפט ה- PHP. כאן נוצר מערך דו ממדי המבוסס על התוכן של משתנה ה- XML, $ xml.
סיכום:
היו שלוש דרכים שונות להמיר תוכן XML למערך אסוציאטיבי שהוצג במדריך זה. זה יעזור לקוראים להכיר את הדרך לעבוד עם נתוני XML ולנתח את הנתונים מתוכן ה- XML באמצעות סקריפט PHP בקלות.