health-check domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/yogisv5/sitesbyyogi.com/wp-includes/functions.php on line 6260
Objective: Learn how to create, open, read, write, and delete files in PHP β and use them to
store data submitted from users.
Files are essential for:
π§ PHP interacts with the file system directly β meaning your web app can create, update, or read real files on
your server.
| Function | Description |
|---|---|
fopen() |
Opens a file (creates it if missing) |
fwrite() |
Writes to a file |
fread() |
Reads file content |
fclose() |
Closes the file |
file_get_contents() |
Reads an entire file easily |
file_put_contents() |
Writes data to a file quickly |
unlink() |
Deletes a file |
file_exists() |
Checks if file exists |
filesize() |
Returns file size (in bytes) |
<?php
$file = fopen("notes.txt", "w"); // "w" = write mode
fwrite($file, "Hello, StreetGeek Academy!");
fclose($file);
echo "File created and written successfully!";
?>
β
This creates a file named notes.txt and writes to it.
| Mode | Meaning |
|---|---|
r |
Read only |
w |
Write only (erases existing content) |
a |
Append (adds to existing content) |
r+ |
Read and write |
a+ |
Read and append |
<?php
$file = fopen("notes.txt", "r");
$content = fread($file, filesize("notes.txt"));
fclose($file);
echo nl2br($content); // Keeps line breaks
?>
β Displays the contents of your file.
π§ nl2br() converts new lines (\n) into HTML <br> tags.
file_put_contents() and file_get_contents()PHP offers simplified helpers for quick file I/O.
<?php
file_put_contents("quick.txt", "This is a quick file write example!");
?>
<?php
echo file_get_contents("quick.txt");
?>
β
Easier than using fopen() and fclose() for small files.
<?php
file_put_contents("notes.txt", "\nAnother line added!", FILE_APPEND);
?>
β Adds content without erasing existing data.
<?php
if (file_exists("notes.txt")) {
echo "File exists!";
} else {
echo "File not found.";
}
unlink("old-file.txt"); // deletes a file
?>
π§ Always check before deleting to avoid errors.
You can also upload files from forms using the $_FILES superglobal.
<form method="POST" enctype="multipart/form-data" action="">
Select image: <input type="file" name="upload">
<input type="submit" value="Upload">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$file = $_FILES["upload"];
$name = $file["name"];
$tmp_name = $file["tmp_name"];
$destination = "uploads/" . $name;
if (move_uploaded_file($tmp_name, $destination)) {
echo "File uploaded successfully!";
} else {
echo "Upload failed.";
}
}
?>
β
Creates a working file upload system (requires an /uploads/ folder with write permissions).
file-demo.php)<?php
$text = "StreetGeek Academy - PHP File Handling Lesson\n";
file_put_contents("lesson.txt", $text);
echo "File created successfully!<br>";
$content = file_get_contents("lesson.txt");
echo nl2br($content);
?>
append-demo.php)<?php
file_put_contents("lesson.txt", "Adding another line.\n", FILE_APPEND);
echo nl2br(file_get_contents("lesson.txt"));
?>
delete-demo.php)<?php
if (file_exists("lesson.txt")) {
unlink("lesson.txt");
echo "File deleted successfully!";
} else {
echo "No file found to delete.";
}
?>
save-form.php)<form method="POST" action="">
Name: <input type="text" name="name"><br>
Message: <textarea name="message"></textarea><br>
<input type="submit" value="Save">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$entry = "Name: " . htmlspecialchars($_POST["name"]) .
"\nMessage: " . htmlspecialchars($_POST["message"]) . "\n\n";
file_put_contents("messages.txt", $entry, FILE_APPEND);
echo "<p style='color:green;'>Saved successfully!</p>";
}
?>
view-messages.php)<?php
if (file_exists("messages.txt")) {
echo nl2br(file_get_contents("messages.txt"));
} else {
echo "No messages yet.";
}
?>
guestbook.php)<h2>StreetGeek Guestbook</h2>
<form method="POST" action="">
Name: <input type="text" name="name"><br>
Comment: <textarea name="comment"></textarea><br>
<input type="submit" value="Post">
</form>
<?php
$filename = "guestbook.txt";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$entry = "<strong>" . htmlspecialchars($_POST["name"]) . "</strong>: " .
htmlspecialchars($_POST["comment"]) . "\n";
file_put_contents($filename, $entry, FILE_APPEND);
echo "<p style='color:green;'>Entry added!</p>";
}
if (file_exists($filename)) {
echo "<h3>Guestbook Entries:</h3>";
echo nl2br(file_get_contents($filename));
}
?>
β When users post comments, they are saved and displayed below the form.
| # | Question | Options | Correct |
|---|---|---|---|
| 1 | What function is used to open a file? | a) open() Β· b) fopen() Β· c) create() | b |
| 2 | What does "a" mode do in fopen()? |
a) Read Β· b) Append Β· c) Overwrite | b |
| 3 | What function writes data quickly? | a) write_file() Β· b) file_write() Β· c) file_put_contents() | c |
| 4 | Which function deletes a file? | a) unlink() Β· b) remove() Β· c) delete_file() | a |
| 5 | What does nl2br() do? |
a) Converts <br> to \n Β· b) Adds HTML line breaks for newlines Β· c) Removes newlines | b |
Objective: Create a mini note-taking system using file storage in notes.php.
notes.txt using FILE_APPEND.nl2br() to preserve formatting.unlink().β Example Output:
file_put_contents() today.
file-demo.php β creates and reads fileappend-demo.php β appends correctlysave-form.php β saves user inputview-messages.php β displays data from fileguestbook.php β working guestbook
π Next Step: In Module 9, youβll connect your PHP code to a real database using MySQL β
learning how to store and retrieve data dynamically using CRUD operations (Create, Read, Update, Delete).
This is where youβll start building truly dynamic, full-stack applications.