30-10-2005, 19:06
|
|
|
|
חבר מתאריך: 02.10.05
הודעות: 2,355
|
|
טוב... כמה דברים.
אתה רוצה להשתמש ב-database נכון? אז קודם אתה צריך להגיד איזה database כי יש פונקציות
להתחברות ל-database אבל לכל סוג database יש פקודה אחרת.
בקשר לעריכת קבצי xml-
אין לי מושג בתחום הזה אז אני יעשה את המיטב ויביא סקריפט הזגמה וסביר לך אותו:
קוד PHP:
<?php $file = "data.xml"; $depth = array();
function startElement($parser, $name, $attrs) { global $depth; for ($i = 0; $i < $depth[$parser]; $i++) { echo " "; } echo "$name\n"; $depth[$parser]++; }
function endElement($parser, $name) { global $depth; $depth[$parser]--; }
$xml_parser = xml_parser_create(); xml_set_element_handler($xml_parser, "startElement", "endElement"); if (!($fp = fopen($file, "r"))) { die("could not open XML input"); }
while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); ?>
אוקי,התג הראשון <?php הוא מן הסתם תג ההתחלה של php,תג הסיום הוא כזה:?>
בשורה השניה מגדירים משתנה בשם file והערך שלו הוא data.xml
בשורה השלישית מגדירים משתנה בשם depth,לא מגדירים ערך אבל מגדירים שהוא מערך
ברביעית מגדירים פונקציה בשם startElement עם המשתנים parser,name ו attrs
בשורה אח"כ יש את הגדרת global הכוונה היא למשתנה גלובאלי,והמשתנה הוא depth
עכשיו יש לולאת for שאני בטוח שאתה מכיר מתכנות ב-action script לכן לא רק אומר שהתנאי הוא:אם המשתנה i קטן מהמשתנה-depth[$parser] שים לב שזה מערך,והמפתח שלו הוא המשתנה parser
בשורה הבאה יש את מה שעושים בלולאה,echo זאת פעולת הדפסה,פה לא מדפיסים כלום
נגמרה הללואה אבל נשארה הפונקציה,המשך הפונקציה הוא הדפסת המשנה name והרדת שורה
ולאחר הגדלת המערך depth[$parser] בפוסט קידום.
נגמרה הפונקציה הראשונה והנה הגדרה על פונקציה שניה בשם endElement אם המשתנים parser וname,שוב מגדירים את depth כמשתנה גלובאלי ומפחיתים את המשתנה depth[paser] בפוסט הפחתה
מגדירים משתנה בשם xml_parser שהוא שווה לפוקציה xml_parser_create שזאת הפונקציה לעיבוד הנתונים של קובץ xml
xml_set_element_hendler היא פונקציה שמגדירה מה לעשות עם פתיחת תאג וסגירת תאג (זה מה שבנתי מהאתר של php)פה הפונקיה היא עם הערך הראשון,התחלת העיבוד,השני:פונקצית ההתחלה והשלישי זה פוקצית הסוף,אותם הסברתי קודם.
עכשיו יש משפט if קצת מסובך להסברה,יש פה את המשתנה fp שהערך שלו הוא הפונקציה fopen שהיא פותחת את הקובץ,הערכים הם המתנה file שהגדרנו בהתחלה,ו r שאומר שההרשאות של הקובץ הם לקריאה בלבד.
אבל יש ! בהתחלה וזה אומר שאם הערך של המשתנה לאחר הפונקציה הוא שקר,כלומר שהפונקציה
נתקלה בבעיות,יש את ההתניה שהיא הפוקציה die שמדפיסה פלט ועצרת את התוכנה. פה יש את
ההודעת שגיאה-could not open XML input.
אם הכל היה בסדר הסקריפט ימשיך לרוץ ולכן יש את ללואת ה-while ההתניה פה דומה להתניה במשפט ה-if , מכריזים על המשתנה data ששווה ל- fread שזאת היא פונקצית הקריאה ובשבילה הפעלנו את הפונקציה fopen כפי שזכור,fp הוא המשתנה ששווה לפונקציית fopen ולכן ב-fread יש את המשתנה fp, אח"כ יש את הפורט שהוא 4096
בתוך הלולאה יש התניי שאם הפוקציה xml_parse שמעבדת את הנתונים,אני מניח שאתה יכול להבין מה המשתנים שהזנו לה,בקיצור,אם הפונקציה מחזירה ערך שקר יש את פוקצית die שבתוכה יש את פונקציית sprintf שעלייה אני צריך עוד ללמוד.בתוך הפונקציה sprintf יש טקסט דינאמי של הודעת שגיאה בעזרת קובעים מראש מוגדרים.
בסוף יש את הפונקציה xml_parser_free שמשחררת את הנתונים המעובדים מהמשתנה xml_parser
אני לא ממש בטוח בקשר לכל הפונקציות בכול זאת אני חדש ב-php אני חושב שמשתמשים אחרים יתקנו אותי אם יש טעויות
|