Explain file_put_contents in php.
Syntax:
file_put_contents(string $filename, mixed $data, int $flags = 0, ?resource $context = null): int|false
- $filename: The path of the file to which the data will be written.
- $data: The data to write to the file (it can be a string or an array).
- $flags: Optional parameter that can modify the behavior. For example:
FILE_APPEND
– Appends the data to the file (if the file already exists).LOCK_EX
– Acquires an exclusive lock on the file while writing.
- $context: Optional. A valid context resource created with
stream_context_create()
. This allows you to modify the behavior of the file write (e.g., changing file stream settings).
Return Value:
- Returns the number of bytes written to the file on success.
- Returns
false
on failure.
Example 1: Basic Usage (Write to a file)
$file = "example.txt";
$data = "Hello, this is some text!";
$result = file_put_contents($file, $data);
if ($result !== false) {
echo "Data written successfully!";
} else {
echo "Failed to write data.";
}
This will write the string "Hello, this is some text!"
to the example.txt
file. If the file doesn't exist, it will be created.
Example 2: Append Data to a File
If you want to append data to a file (instead of overwriting it), you can use the FILE_APPEND
flag.
$file = "example.txt";
$data = "\nAppended text!";
$result = file_put_contents($file, $data, FILE_APPEND);
if ($result !== false) {
echo "Data appended successfully!";
} else {
echo "Failed to append data.";
}
This will append "Appended text!"
to the existing content in example.txt
.
Example 3: Write an Array to a File
You can also write an array of data to a file by converting it into a string format, such as JSON or a serialized format.
$file = "data.json";
$data = ["name" => "John", "age" => 30, "city" => "New York"];
$result = file_put_contents($file, json_encode($data));
if ($result !== false) {
echo "JSON data written successfully!";
} else {
echo "Failed to write JSON data.";
}
This will write the array as a JSON string to data.json
.
Example 4: Locking the File While Writing
To ensure that no other process can write to the file at the same time, you can use the LOCK_EX
flag.
$file = "example.txt";
$data = "This will be locked while writing.";
$result = file_put_contents($file, $data, LOCK_EX);
if ($result !== false) {
echo "Data written with lock!";
} else {
echo "Failed to write data with lock.";
}
This ensures that the file is locked during the write process, preventing other PHP scripts from accessing it until the operation is completed.
Example 5: Handle Errors
You can handle errors by checking the result of file_put_contents()
.
$file = "/path/to/nonexistent/folder/example.txt"; // Invalid path
$data = "This will fail";
$result = file_put_contents($file, $data);
if ($result === false) {
echo "Failed to write data. Error occurred.";
} else {
echo "Data written successfully!";
}
In this case, since the file path is invalid (or the folder doesn't exist), it will fail and return false
.
Summary:
file_put_contents
is a convenient function to write data to a file.- You can choose whether to overwrite or append data.
- Use flags like
FILE_APPEND
andLOCK_EX
to modify the behavior.
At Online Learner, we're on a mission to ignite a passion for learning and empower individuals to reach their full potential. Founded by a team of dedicated educators and industry experts, our platform is designed to provide accessible and engaging educational resources for learners of all ages and backgrounds.
Copyright 2023-2025 © All rights reserved.