23-02-2005, 23:41
|
|
|
|
חבר מתאריך: 20.06.03
הודעות: 5,616
|
|
קודם כל באין מסד נתונים קובץ זה פתרון נפלא
לשמור מידע....
עכשיו לגבי השמירה במבנה אחיד בתוך קובץ....
אתה בונה אובייקט שמחזיק את שמות המשתמש והססמא, או אם ממש להקל, מערך במבנה הבא:
קוד PHP:
Array users[auto_id] ->[username] ->[password]
(זו רק דוגמה אחת מני רבות של אפשרויות לשמירת המידע, או באובייקט שבנית במיוחד לזה או במערך בצורה זו או אחרת או כמה מערכים...)
לאחר שיש לך את המידע, כל מה שצריך לעשות זה להעביר אותו "סידרור" ולשמור אותו בקובץ.
עכשיו נעזוב את המושג העברי המגוחך ונלמד מה זה serializing.
serialize
מאחר ובקובץ (וזה לא מעניין אותנו איך הוא נשמר פיזית) המידע נשמר בצורה סדרתית, כלומר בית אחרי בית (byte) - אנו מחפשים דרך יעילה לכתוב מידע שישמור על המבנה הזה בזמן שמירת מידע. במקרה זה נשתמש בפונקצית ה-serialize על מנת להפוך את המידע שבידינו לסדרתי, הפונקציה תקח את המידע, ולא משנה באיזה מבנה הוא או מאיזה טיפוס נתונים הוא ותהפוך אותו לרצף של בתים שניתן לכתוב ישירות לקובץ, הנה דוגמה מעשית שמבצעת מספר דברים:
1. אני מעביר את המערך arr סריאליזציה (הופך אותו לרצף של תווים).
2. כותב את כל הרצף באופן ישיר לקובץ.
קוד PHP:
// $arr is an array file_put_contents('path to my file',serialize($arr));
על מנת לקרא את הנתונים מהקובץ בחזרה אל המבנה שלהם, נבצע את הדבר הבא:
קוד PHP:
$arr1=stripslashes_deep(unserialize(file_get_conte nts('path to my file')));
אני משתמש ב-stripslashes_deep על מנת לבטל תופעות של הוספת "\" בקריאת נתונים מתוך שדות בטופס, ב-file_get_contents על מנת לקרא את תוכן הקובץ, וב-unserialize על מנת לתרגם את רצף התוים בחזרה למבנה שלהם.
בסופו של תהליך זה, arr זהה ל-arr1.
שים לב שהפונקציה file_put_contents קיימת רק ב-PHP 5 ולכן תוכל למצא לה חלופות או לכתוב אחת כזו בעצמך....
שים לב על מנת לבצע סריאליזציה של אובייקטים כדאי שתקרא מעט פה:
http://il.php.net/manual/en/languag...rialization.php
בהצלחה,
|