File Handling
File handling क्यों
File handling PHP को data किसी file में save करने और बाद में पढ़ने देता है — logs, सरल settings, exports, या तब text रखने के लिए जब पूरा database न चाहिए। PHP आम कामों को दो functions से बहुत आसान बनाती है: file_put_contents और file_get_contents।
File में लिखना
file_put_contents file बनाता है (ज़रूरत हो तो) और उसमें text लिखता है।
<?php
file_put_contents("data.txt", "Hello CodingEasily");
echo "Saved!";
?>
चेतावनी: यह file में पहले से मौजूद सब कुछ replace कर देता है। पुराना content रखकर जोड़ने को append (आगे) इस्तेमाल कीजिए।
File पढ़ना
<?php
$text = file_get_contents("data.txt");
echo $text;
?>
file_get_contents पूरी file एक string में देता है। सरल और छोटी files के लिए बढ़िया।
File में append
replace की जगह अंत में जोड़ने को FILE_APPEND flag लगाइए।
<?php
file_put_contents("log.txt", "Line 1\n");
file_put_contents("log.txt", "Line 2\n", FILE_APPEND);
echo file_get_contents("log.txt");
?>
Line 2
FILE_APPEND बिना "Line 2" "Line 1" को मिटा देता। Appending से ही logs बनते हैं।
line-by-line के लिए fopen
बड़ी files के लिए handle खोलकर line-by-line पढ़िए ताकि सब कुछ एक साथ load न हो।
<?php
$f = fopen("log.txt", "r"); // "r" = read mode
while (($line = fgets($f)) !== false) {
echo $line;
}
fclose($f);
?>
Line 2
काम पूरा होने पर हमेशा fclose()। आम modes: "r" read, "w" write (मिटाकर), "a" append।
Check और delete
<?php
if (file_exists("data.txt")) {
echo "File is there";
// unlink("data.txt"); // file delete करता है
}
?>
file_exists पढ़ने या delete से पहले जाँचता है। unlink file हटाता है — सावधानी से इस्तेमाल कीजिए।
आम गलतियाँ
- Append की जगह overwrite। साधारण
file_put_contentsreplace करता है; पुराना data रखने कोFILE_APPENDलगाइए। - गलत path। Relative path script की जगह पर आधारित होता है — file न मिले तो जाँचिए।
- Permission errors। Folder web server के लिए writable होना चाहिए।
fclose()भूलना।fopenसे खोली file हमेशा बंद कीजिए।
सारांश
file_put_contentsलिखता है;file_get_contentsपूरी file पढ़ता है।- replace की जगह अंत में जोड़ने को
FILE_APPENDलगाइए। - बड़ी files के लिए
fopen+fgetsline-by-line, फिरfclose। file_existsजाँचता है;unlinkdelete करता है।- बहुत structured data के लिए files की जगह MySQL।
आगे, structured data रखिए MySQL में, या data export कीजिए PHP CSV export से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
PHP में file में लिखने का सबसे आसान तरीका क्या है?
file_put_contents("data.txt", $text) इस्तेमाल कीजिए। File न हो तो बना देता है और आपका text एक line में लिख देता है। छोटी files के लिए सबसे सरल।PHP में पूरी file कैसे पढ़ें?
file_get_contents("data.txt") इस्तेमाल कीजिए। यह पूरी file content एक string में देता है। line-by-line पढ़ने के लिए fopen के साथ loop में fgets।Write और append में क्या अंतर है?
file_put_contents($f, $text, FILE_APPEND) इस्तेमाल कीजिए।मेरा file write fail क्यों होता है?
fopen कब इस्तेमाल करूँ file_get_contents की जगह?
fopen तब जब file बड़ी हो या line-by-line process करनी हो, ताकि पूरी file एक साथ memory में न आए। छोटी files के लिए file_get_contents सरल है।