מסדי הנתונים MySQL ו- Access הופכים יותר ויותראמצעי נגיש לאחסון נתונים. אבל בתחילת 1990, זה היה פופולרי לעבוד עם קבצים ב- PHP, שמירת רשומות בפורמט קבצי טקסט בפורמט CSV, מופרדים על ידי שורות חדשות.
Базы данных удобны, но каждый разработчик должен לפחות יש כמה ידע בסיסי על איך לקרוא ולכתוב קבצים. אולי רבים ישקפו את השאלה: "למה אני צריך לדעת את זה?" אם אני משתמש בקבצים, הם כתובים ב- XML, ואני פשוט משתמש במנתח ".
אז, הנה כמה סיבות מדוע ייתכן שתצטרך קבצים:
קריאת קבצים וכתיבה הם פעולות בסיסיות.אם אתה רוצה לקרוא מסמך, תחילה עליך לפתוח אותו. אחרי זה, אתה צריך לקרוא כמה שיותר את התוכן, אז לסגור את התיק. כדי לתעד מידע במסמך, אתה צריך קודם לפתוח אותו (או, אולי, כדי ליצור, אם לא כבר נוצרת). אחרי זה, לכתוב את הנתונים הדרושים, ולסגור אותו בסוף.
כמו כן, נוח להשתמש בפונקציות מובנות שפותחות ונסגרות באופן אוטומטי. הם זמינים ב PHP5. אתה צריך גם להכיר את התכונות של הקבצים, כלומר, עם המאפיינים שלה.
הם יכולים לומר:
עדיף ללמוד את כל התכונות הבסיסיות לעבודה עם קבצים ב- PHP. זה יהיה מאוד להקל על העבודה.
ייתכן שיהיה עליך לדעת את הזמן של העריכה האחרונה של הקובץ. במקרה זה, הפונקציות מגיעות להצלה: fileatime (), filemtime () ו- filectime ().
כאן, הקוד מאחזר את חותמת הזמן של הגישה האחרונה ומציג אותה:
הפונקציה filectime () מציג את הזמן של שינוי של מידע שונים הקשורים לקובץ (לדוגמה, זכויות גישה) ו- filemtime () - משנה את הקובץ עצמו.
הפונקציה date () שימשה לעיצוב חותמת יוניקס שהוחזרה על ידי פונקציות קובץ * (time).
כדי לברר אם זה באמת עובד עם קבצים ב- PHP, אתה יכול להשתמש בפונקציה is_file () או is_dir () כדי לבדוק אם היא ספרייה.
php
קובץ echo $. (is_file ($ file)? ":" לא "). "file.";
קובץ echo $. (is_dir ($ file)? ":" לא "). "directory.";
פלט קוד לדוגמה:
לכן, אתה יכול למנוע טעויות ולא לפתוח בטעות "לא קובץ". ב- PHP, עבודה עם קבצים וספריות דומה.
לפני עבודה עם קובץ, אתה יכול לבדוק אם הוא קריא או לכתיבה. לשם כך, השתמש בפונקציות is_writable () ו- is_readable ().
php
קובץ echo $. (is_readable ($ file)? ":" לא "). "לקרוא.";
קובץ echo $. (is_writable ($ file)? ":" לא "). "נרשם.";
פונקציות אלה מחזירות ערך בוליאני ומסבירות אם ניתן לבצע את הפעולה בקובץ.
הקוד מציג את הערכים הבאים על המסך:
באמצעות מפעיל ternary, תוכל לציין אם הקובץ זמין או לא.
כדי לברר את גודל הקובץ, עליך להשתמש בפונקציה filesize (). הוא יוצג בבתים.
php
$ file = "C: Windowsfile.ini"; $ size = filesize ($ file);
קובץ echo $. msgstr "יש גודל". $. "בתים";
הפונקציה תציג את הפריטים הבאים:
השתמש בקובץ במערכת Windows כאןמדגיש ניואנס אחד. יש קונטרבס משמעות מיוחדת כדמות בריחה. זה יהיה צורך להימנע מכך על ידי הוספת עוד אחד הפוך.
אם הקובץ עדיין לא נוצר, הפונקציה filesize () תצביע על False ועל שגיאה. לכן, תחילה לבדוק את הקובץ עבור קיומה של הפקודה file_exists הצורך ().
php
$ file = "C: Windowsfile.ini", אם (file_exists ($ file)) {$ size = filesize ($ file);
קובץ echo $. msgstr "יש גודל". $. "בתים.";} אחר {echo $ קובץ. "file not found."}
את file_exists () יש לבדוק כמעט תמיד עבור אבטחה.
החלק הקודם מראה כמה אתה יכול לעשותלמד על הקבצים שאתה עובד איתם לפני שתתחיל לקרוא או לכתוב אליהם. עכשיו אתה יכול לפרק את התוכן של הקובץ הם לקרוא.
פונקציות לעבודה עם קבצי PHP להפוך את המשימה קלה יותר.במקרה זה, אתה צריך file_get_contents (). הוא יקרא את כל התוכן של הקובץ למשתנה מבלי לפתוח או לסגור את הקובץ בעצמך. זה נוח כאשר כמות הכתיבה היא קטנה יחסית, שכן מיד לקרוא 1 GB של נתונים לתוך ארכיון לא תמיד רציונלי ב- PHP. עבודה עם קבצי ".ini" ו- file_get_contents () מופיעה למטה.
php
$ file = "c: windowsfile.ini"; $ file1 = file_get_contents ($ file);
echo $ file1;
עבור קבצים גדולים או פשוט בהתאםהצרכים של הסקריפט שלך, זה יכול להיות יותר הגיוני לעבד את הפרטים בעצמך. זאת בשל העובדה כי ברגע הקובץ נפתח, אתה יכול לחפש תגובה ספציפית בו ולקרוא נתונים רבים ככל שתרצה. הפונקציה fopen () משמשת לפתיחת קובץ.
php
$ file = "c: windowsfile.ini"; $ file1 = fopen ($ file, "r");
כדי לעבוד עם fopen (), אתה צריך שני ארגומנטים:
הפונקציה מחזירה מתאר או זרם לקובץ המאוחסן במשתנה $ file1. יש להשתמש בו בכל הפקודות הבאות בעת עבודה עם קובץ.
מצב | משמעות | מיקום הסמן | אם הקובץ אינו קיים? |
עמ ' | לקריאה בלבד | תחילת הקובץ | ייתן שגיאה |
ב | רק הרשומה | תחילת הקובץ | ליצור חדש |
א | רק הרשומה | סוף הקובץ | ליצור חדש |
כדי לקרוא מקובץ פתוח שורה אחת בכל פעם, ניתן להשתמש בפונקציה fgets ().
php
$ file = "c: windowsfile.ini"; $ file1 = fopen ($ file, "r");
לעשות {הד fgets ($ file1). "
";}
בעוד (! feof ($ file1));
fclose ($ file1);
באמצעות לולאה לעשות בזמן טובבחירה כדי לגלות מראש כמה שורות בקובץ. הפונקציה feve בודקת אם קובץ ההשלמה הגיע והלולאה נמשכת עד לסוף תנאי הקובץ. לאחר סיום הקריאה, הפונקציה fclose () משמשת לסגירת המסמך.
שני מצבי שימוש נפוץ בעת כתיבה לקובץ עםבאמצעות הפונקציה fwrite (): "w" ו- "a". "W" פירושו מה שאתה רוצה לכתוב למסמך, אבל זה יהיה הראשון למחוק כל תוכן, "א" - הוספת נתונים חדשים על מה שכבר קיים בקובץ. אתה צריך להיות בטוח כי הגירסה הנכונה משמש.
הדוגמה הבאה תשתמש במצב "a" לכתיבה.
php
$ myFile = "files.txt"; $ file1 = fopen ($ myFile, "a");
$ output = "בננה". PHP_EOL; fwrite ($ file1, פלט $);
$ output = "סין". PHP_EOL;
fwrite ($ file1, פלט $);
fclose ($ file1);
ראשית, שם הקובץ מוקצה למשתנה, לאחר מכןהוא נפתח במצב "a" כדי להוסיף. הנתונים שנכתבים מוקצים לפלט $ ו- fwrite (), והמידע נוסף לקובץ. התהליך חוזר על עצמו כדי להוסיף שורה נוספת, ולאחר מכן המסמך נסגר באמצעות fclose ().
הקבוע מראש PHP_EOL מוסיף תו חדשני ספציפי לפלטפורמה שבה PHP פועל עם קבצי טקסט.
תוכן הקובץ לאחר ביצוע הקוד הנ"ל אמור להיראות כך:
הפונקציה file_put_contents () יכולה גם היאלכתוב לקובץ. זה לוקח את שם הקובץ, את הנתונים שיש לכתוב ואת FILE_APPEND קבוע, אם זה צריך להוסיף נתונים (זה יהיה להחליף את תוכן הקובץ כברירת מחדל).
הנה הדוגמה זהה לעיל, אבל הפעם באמצעות file_put_contents ().
php
$ myFile = "files.txt";
file_put_contents ($ myFile, "בננה". PHP_EOL);
file_put_contents ($ myFile, "סין". PHP_EOL, FILE_APPEND);
עם פונקציות אלה אתה צריך לעבוד לעתים קרובות, אז עדיף לזכור אותם. בנוסף, הם יכולים לפעמים לעבוד עם קבצי PHP כדי להקל על כמה משימות מורכבות.