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

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

WebProject 04-02-06 08:29

[מדריך] PHP - פונקציות לקריאת וכתיבת קובץ
 
Files - Reading & Writing

כתיבה על קבצים, למה אנו צריכים אותה?

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

לכתיבה וקריאת קבצים, יש מספר פונקציות, כשכולם שימושיות.

אני אתחיל הישר מן הפונקציה המוכרת ביותר למתכנתים:

Fopen();

מהיא הפונקציה?

בעזרת פונקציה זאת, ניתן לפתוח [בלבד!] את הקובץ, אבל עדיין לא ניתן להדפיסו או להכניס אליו תוכן, לפונקציה זאת נכניס שני ערכים, כתובת הקובץ, וסוג הקריאה.

PHP קוד:

<?Php
       $yourile 
"sources/myfile.txt";
  
$handle fopen($yourfile,'X');
?>

הסבר:

בעצם פה הבאנו את הקובץ myfile.txt הנמצא בתיקיה sources.

X -
צורת הפתיחה, כמובן שזאת אינה צורת הפתיחה, וישנן הרבה צורות, אני אתן מספר קטן.


r - קריאה בלבד, ללא אפשרות להכנסת תוכן
r+ - קריאה, עם אפשרות להכנסת תוכן

w - קריאה בלבד, ללא אפשרות להכנסת תוכן
w+ - קריאה, עם אפשרות להכנסת תוכן

כמו ששמתם לב, המצבים דומים מאוד [w,r], אבל ישנו הבדל, W יתן לכם שגיאה במידה ויש 0 תווים בדף, כלומר במידה והוא ריק.
במידה והקובץ גם אינו קיים, הצורה w תנסה ליצור אותו.

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

Fread();

פונקציה זאת בעצם מביאה את הקובץ, קוראת אותו, ומאחסנת בתוכה את תוכנו, כל מה שנצטרך לאחר מכן, הוא להשתמש באחת מן פונקציות פליטת הפלט [print,echo,print_f .....], והקובץ פשוט יודפס לנו מול הפנים.


על מנת להפעיל את הפונקציה, עלינו להשתמש בשני פרמטרים, האחד הוא המשתנה שבו נמצאת פתיחת הקובץ (fopen) והשני, הוא גודל הקובץ, על מנת לדעת אם הקובץ ריק או מלא, כדי לתת שגיאה או להמשיך את קריאת הקובץ.

PHP קוד:

<?Php
 $filename 
"somefile.txt";
  
$handle fopen($filename,'r'); // Getting the file \\\for read only///
    
$fread fread($handle,filesize($filename)); // getting the content
         
echo $fread//printing the file
?>

הסבר:

כאן פתחתי את הקובץ somefile.txt, לקריאה בלבד.
לאחר מכן, לקחתי את תוכן הקובץ עם הפונקציה fread, בדקתי את משקלו, ולאחר מכן, הדפסנו אותו.

לא כזה קשה, נכון?

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


Fwrite();

פונקציה זאת מכניסה כל תוכן שנרצה, אל הקובץ, על מנת להכניס אליה נתונים, נהיה חייבים להשתמש באחת הצורות שאינן מוגבלות לקריאה בלבד (w+,r+) ולא, נקבל שגיאה.

על מנת להכניס תוכן, נצטרך שני פרמטרים, פתיחת הקובץ (fopen) והתוכן שברצוננו להכניס אל הקובץ.

הפונקציה הזאת עוד יותר פשוטה מהקודמות לה.

PHP קוד:

<?Php
  $filename 
"somefile.txt"// the file
  
$handle fopen($filename,'r+'); // opening for reading and writing
  
$content "Inserting contents to a file is realy cool.."// the new file content
        
$insert fwrite($handle,$content); // Inserting the content
?>



זה הכל להיום ..

מקווה מאוד שעזר לכם B-)


נכתב ע"י טל

DaNieLLL 04-02-06 09:06

מדריך מצוין!
אבל, r = read
w = write
במצב w אפשר לכתוב, במצב r לא, או שלפחות ככה אני עובד.

בכל מקרה, כל הכבוד על היוזמה !

WebProject 04-02-06 09:12

אתה טועה, תכנס למנואל, ותראה שאתה טועה :)

שקד 04-02-06 09:14

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

בכל מקרה אני מוסיף את זה לאינדקס מדריכים :)

WebProject 04-02-06 09:21

שקד, בשמחה הייתי מוסיף, אבל אני לא משתמש בהם, לכן אני מעדיף שלא לכתוב על משהו שאני יכול להטעות כאן.

ViPeRt 04-02-06 15:11

אחלה של מדריך :]

Kuchi 04-02-06 17:42

מושקע ביותר אחי יפה אהבתי !
כמובן שתודה ויפה שאתה עוזר

WebProject 04-02-06 20:12

עוד תגובות? :)

CSite.co.il 05-02-06 12:15

יפה מאוד, יעזור לי בהמשך..php |...| ;-0

miniature 05-02-06 12:24

תודה, אחלה מדריך.
ד"א - גם במצב a אפשר לכתוב בקובץ.


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

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