לדלג לתוכן

1.6 פעולות עם קבצים php תרגיל

להלן תרגילים מעשיים לעבודה עם קבצים ותיקיות ב-PHP:

תרגיל 1: קריאת קבצים

הוראות:
1. צור קובץ טקסט בשם data.txt עם 5 שורות טקסט
2. כתוב סקריפט PHP שקורא ומציג את כל תוכן הקובץ באמצעות file_get_contents()
3. כתוב גרסה נוספת שקוראת את הקובץ שורה אחר שורה עם fopen() וfgets()
4. הצג את מספר השורות בקובץ

תרגיל 2: כתיבה לקבצים

הוראות:
1. צור סקריפט PHP שכותב לקובץ חדש log.txt את התאריך והשעה הנוכחיים
2. הוסף אפשרות להזין טקסט דרך טופס ולהוסיף אותו לקובץ (עם מעבר שורה)
3. כתוב פונקציה שמקבלת שם קובץ וטקסט, ומוסיפה את הטקסט לקובץ עם חותמת זמן
4. הגן על הקוד מפני כתיבה לקבצים לא מורשים

תרגיל 3: ניהול תיקיות

הוראות:
1. צור סקריפט שיוצר תיקייה חדשה בשם uploads אם היא לא קיימת
2. כתוב קוד שסורק את תוכן התיקייה ומציג רשימה של כל הקבצים (ללא . ו..)
3. הוסף אפשרות ליצירת תיקיות משנה דרך טופס
4. כתוב פונקציה שבודקת הרשאות כתיבה לתיקייה

תרגיל 4: מערכת לוגים

הוראות:
1. צור קובץ log.php עם פונקציות ל:
- רישום פעולות (תאריך, שעה, הודעה)
- קריאת 10 הרשומות האחרונות
- ניקוי קובץ הלוג
2. השתמש בפונקציות אלו כדי לרשום כניסות למערכת
3. הגבל את גודל קובץ הלוג ל-1MB (אם גדול יותר, צור קובץ חדש)

תרגיל 5: מערכת קבצים אישית

הוראות:
1. צור ממשק וובי לניהול קבצים:
- הצגת רשימת קבצים
- אפשרות צפייה בקבצי טקסט
- הורדת קבצים
- מחיקת קבצים (באישור)
2. הגן על המערכת מפני:
- גישה לקבצים מחוץ לתיקייה המיועדת
- שמות קבצים לא חוקיים
- העלאת קבצים מסוכנים

תרגיל 6: שילוב קבצים

הוראות:
1. חלק את הקוד שלך לקבצים נפרדים:
- header.php - כותרת האתר
- functions.php - פונקציות עזר
- config.php - הגדרות
2. צור דף ראשי (index.php) שמשתמש ב-require_once לטעינת הקבצים
3. הוסף מערכת להכללת תבניות (templates) לפי בחירה

תרגיל 7: מערכת גיבוי

הוראות:
1. כתוב סקריפט שיוצר גיבוי של קבצי הפרויקט:
- יוצר תיקיית backup עם תאריך בשמה
- מעתיק את כל הקבצים הנחוצים
- דוחס את התיקייה ל-zip (אם הרחבה זמינה)
2. הוסף אפשרות שחזור מגיבוי
3. צור ממשק ניהול לגיבויים קיימים

תרגיל 8: אפליקציית פתקים

הוראות:
1. צור מערכת לניהול פתקים:
- כל פתק נשמר כקובץ טקסט נפרד
- ניתן ליצור/לקרוא/לעדכן/למחוק פתקים
- חיפוש פתקים לפי תוכן
2. שמור את הקבצים בתיקייה עם הרשאות מתאימות
3. הוסף מיון לפי תאריך יצירה/עדכון

תרגיל 9: מערכת העלאת קבצים

הוראות:
1. צור טופס להעלאת קבצים עם:
- הגבלת סוגי קבצים (רק תמונות/מסמכים)
- הגבלת גודל
- שינוי שם קובץ ייחודי
2. כתוב קוד שמטפל בהעלאה:
- בודק שגיאות
- מעביר לקובץ לתיקיית היעד
- שומר רשומה בקובץ לוג
3. הצג גלריה של הקבצים שהועלו

תרגיל 10: פרויקט מסכם

הוראות:
צור מערכת ניהול תוכן בסיסית (CMS) עם:
1. ניהול קבצי תבנית (templates)
2. מערכת בלוג (פוסטים כקבצי טקסט או סריאליזציה)
3. ניהול משתמשים (שמירת נתונים בקבצים)
4. גיבוי אוטומטי
5. מערכת הרשאות לקבצים

טיפים למתקדמים:
1. השתמש ב-try-catch לטיפול בשגיאות קבצים
2. בדוק הרשאות לפני כל פעולה
3. נקה קלט משתמש לפני שימוש בשמות קבצים
4. השתמש ב-realpath() למניעת directory traversal
5. הגבל גישה לקבצים רגישים (כמו קבצי PHP ישירים)

בהצלחה! זכור שלעולם אל תסמוך על קלט משתמש כשעובדים עם קבצים, ותמיד בדוק הרשאות.