הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [מדריך] קריאת קובץ XML בעזרת PHP (https://hosts.co.il/forums/showthread.php?t=36674)

WebProject 23-12-06 12:06

[מדריך] קריאת קובץ XML בעזרת PHP
 
שבת שלום, וחג חנוכה שמח :)

די משעמם לי עכשיו, חיפשתי נושא לכתוב עליו, ונתקלתי באשכול של המשתמש sUP, אז החלטתי לכתוב מדריך על הנושא.

עבודה עם XML

מה עבודה עם XML יכולה לתת לי?

בעזרת XML תוכלו לשמור פרטים חיוניים, ליצור קבצי RSS שיהיה ניתנים לקריאה על ידי מספר תוכנות, ובעצם תוכלו ליצור קובץ עידכונים של אתרכם, שמשתמשים אחרים יוכלו לקרוא ללא צורך בדפדפן עצמו, אבל לא על זה אני רוצה להסביר במדריך זה.

במדריך זה אני אסביר איך ליצור קובץ XML בסיסי, ודרך קובץ PHP, לשלוף ממנו נתונים ולעשות בהם שימוש באתר אינטרנט.

בכללי, קובץ XML הינו קובץ המורכב מתגיות שאינם מוגדרות כמו HTML, אלא שכאן יש בידכם לקבוע את התגיות בעצמכם, ואת הפרמטרים שלהם, דבר שכמובן אינו דורש תיקניות כמו בHTML.

כל קובץ XML נפתח על ידי השורה הבאה:

PHP קוד:

  <?xml version="X" encoding="Y" ?>

כאשר version מציין את גירסת הXML, וencoding את הקידוד של הדף.

יצירת קובץ XML בסיסי

ברגע זה אנו ניצור קובץ XML, אשר שורתו הראשון תהיה הגדרת קובץ XML, דבר אשר יעשה על ידי הקוד שנכתב למעלה.

על מנת להמחיש את האפשרויות שניתנות לעשייה על ידי XML, אנו נבחר בקובץ XML אשר מכיל מידע על אתר אינטרנט כלשהו.
example.xml

PHP קוד:

<?xml version="1.0" encoding="iso-8859-1" ?> 
<sites>
    <site>
            <name>WebProject</name>
            <author>Tal Gleichger</author>
            <adress>http://webproject.co.il</adress>
    </site>
    <site>
            <name>Hosts</name>
            <author>Alon</author>
            <adress>http://hosts.co.il</adress>
    </site>
</sites>

מה שעשינו בקובץ זה הוא הגדרה של שני אתרים בעלי הפרטים הבאים:

שם: WebProject
יוצר: Tal
כתובת: http://webproject.co.il
--
שם: Hosts
יוצר: Alon
כתובת: http://hosts.co.il

שליפת הנתונים והדפסתם כפלט HTML

על מנת לשלוף נתונים מן קובץ הXML, עלינו להגדיר אלמנט חדש, SimpleXMLElement.

PHP קוד:

$XMLFile 'example.xml';
$xml = new simpleXMLElement($XMLFile,null,true); 

הסבר מהיר,
$XMLFile - קובץ הXML אשר בו הנתונים אשר ברצוננו לשלוף
null - מסמל אפשרויות, פרמטר אשר אליו לא תצטרכו להתייחס, ועדיף שתשאירו כערך ריק (null)
true - האם הפרמטר הראשון ($XMLFILE) מסמל כתובת (URL), במקרה זה, כן, כתובת של הקובץ אליו אנו נגשים, ולכן נכתב true, אשר משמעותו "אמת".
לאחר שלב זה, על שעלינו לעשות, זה לגשת לכל מערך על ידי שימוש במשתנה $xml, בצורה הבאה:

PHP קוד:

$xml -> site[0] -> name// site 1 [webproject]
$xml -> site[1] -> name // site 2 [hosts] 

כמו שראיתם, הגישה למערכים הינה פשוטה, ועכשיו, נוכל להדפיס את כל הנתונים בקלות בצורה הבאה:

example.php

PHP קוד:

<?Php
$xml 
= new simpleXMLElement('example.xml',null,true);
  
$num count($xml -> site);
      for(
$i 0$i $num$i++)
       {
          print 
'Sites name: '.$xml ->  site[$i] -> name.'<br />';
          print 
'Sites author: '.$xml -> site[$i] -> author.'<br />';
          print 
'Sites adress: '.$xml ->  site[$i] -> adress.'<br /><br />';
       } 
?>

מכיוון שאיננו יודעים מה מספר האתרים הנמצא בתוך הקובץ, הרצתי את הפונקציה count, והכנסתי כערך לתוכה את המערך site, פונקציה זאת בעצם סופרת כמה פעמים המערך קיים בקובץ, ואז מחזירה מספר שלם, אשר הצבתי בלולאה על מנת להדפיס את הנתונים כמספר האתרים הקיים במערכת.

תגובה למשתמש tnadav, על מנת לגשת לפרמטר בתוך התגית עצמה (name="sitesname") עליך פשוט לפנות אליו בצורה הבאה:

PHP קוד:

$xml -> site[array][value

ובהתאם לקוד PHP שניתן למעלה,
PHP קוד:

$xml -> site[$i]['name']; 

- מקווה שעזר למישהו :) חג שמח =]


Matchs 23-12-06 12:16

תודה.. אחלה מדריך

null 23-12-06 12:27

עד כמה שזכור לי SimpleXML עובד רק מPHP5,
תקן אותי אם אני טועה :)

tnadav 23-12-06 12:29

שני דברים, דבר ראשון:
PHP קוד:

$xml = new simpleXMLElement('example.xml',null,true); 

מה מסמן ה- NULL או ה- True?

דבר שני:
אם יש לי קובץ XML כזה:
קוד:

<?xml version="1.0" encoding="iso-8859-1" ?>
<sites>
    <site name="WebProject" author="Tal Gleichger" adress="http://webproject.co.il" />
    <site name="Hosts" author="Alon" adress="http://hosts.co.il" />
</sites>

איך ניגשים ל- name או adress או author?

סה"כ מדריך מעולה, אני חושב שהיה פה מקום ליותר פירוט

null 23-12-06 12:33

בשביל הXML קיים,
כדי למנוע מצבים כאלה,
ולהפוך אותם כמו בדוגמא של טל. :)

WebProject 23-12-06 12:40

ציטוט:

נכתב במקור על ידי tnadav (פרסם 393296)
שני דברים, דבר ראשון:
PHP קוד:

$xml = new simpleXMLElement('example.xml',null,true); 

מה מסמן ה- NULL או ה- True?

דבר שני:
אם יש לי קובץ XML כזה:
קוד:

<?xml version="1.0" encoding="iso-8859-1" ?>
<sites>
    <site name="WebProject" author="Tal Gleichger" adress="http://webproject.co.il" />
    <site name="Hosts" author="Alon" adress="http://hosts.co.il" />
</sites>

איך ניגשים ל- name או adress או author?

סה"כ מדריך מעולה, אני חושב שהיה פה מקום ליותר פירוט

תוקן המדריך בהתאם למה שביקשת, וGOOGLE, כן, זה PHP5 :)

DCB 23-12-06 16:28

מדריך מעולה.
יעיל גם ליצירת פלאשים דינאמיים :)

DorWD 23-12-06 17:09

טל מעולה!
חיפשתי כזה!
תודה ישמן :)

בניה 23-12-06 18:20

כל הכבוד על המדריך|קורץ|

Gal Shafrir 23-12-06 19:16

תודה רבה על המדריך טל :(


כל הזמנים הם GMT +2. הזמן כעת הוא 02:47.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ