
There are two ways you can write text data to a file in PHP:
- Use the
file_put_contents()function - Use the
fopen(),fwrite(), andfclose()functions
This tutorial will help you learn how to use both methods to write data to a file in PHP.
Let’s start with using the file_put_contents() function
PHP write to file with file_put_contents()
The file_put_contents() function is a built-in PHP function used for writing data to a file.
The syntax of the function is as follows:
file_put_contents(
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
): int|false
The $filename and $data parameters are required while $flags and $context are optional.
The function returns the int number of bytes written to the file. When the write operation fails, it returns false or falsy numbers.
The code example below shows how to write a text to the example.txt file:
file_put_contents("example.txt", "Hello World!");
The code above will produce the following result:
The file_put_contents() function will look for the file you passed as the $filename parameter.
When the file isn’t found, PHP will create the file. It will then write the data you passed as its $data parameter.
Once the write operation is finished, the function will automatically close the file from access.
The $flags parameter can be used to modify the behavior of the function. Here are the possible values:
FILE_USE_INCLUDE_PATH- Search for the file in the include path, which is set from the PHP configurationFILE_APPEND- Append data to an existing file instead of overwriting itLOCK_EX- Lock the file while you access it so others can’t edit
The flags can be joined with the binary OR operator (|) as follows:
file_put_contents(
"example.txt",
" Good Morning!",
FILE_APPEND | LOCK_EX
);
By default, file_put_contents() will overwrite the file data on write.
The FILE_APPEND flag will cause the function to append the data instead of overwriting it.
The $context flag is used to add a stream context for the operation. It’s can be useful when you’re writing to a remote file using an FTP connection.
And that’s how you use the file_put_contents() function to write data to a file in PHP.
Using fopen(), fwrite(), fclose() functions
The PHP fopen(), fwrite(), and fclose() functions are used to write data to a file.
Under the hood, these functions are similar to calling the file_put_contents() function, only in three separate steps:
Step #1 - Open the file using fopen()
Call the fopen() function and pass two arguments into it:
- The
$filenamefor the file name - The
$modeto specify the access mode to the file. Passwfor write andafor append
The code example below will cause PHP to look for the test.txt file:
$file = fopen("text.txt", "w");
The function returns a resource stream that you can use to write data into.
Step #2 - Write to the file using fwrite() and close it with fclose()
The fwrite() function is used to write to a file in PHP.
You need to pass two arguments to the function:
- The
$streamresource created usingfopen() - The
$datastring to write to the stream
Here’s an example of writing to the stream:
// 👇 open a stream
$file = fopen("text.txt", "w");
// 👇 write to the stream
fwrite($file, "Somewhere over the rainbow");
fwrite($file, "\n Skies are blue");
// 👇 close the stream
fclose($file);
When your text has multiple lines, you can add the \n symbol to create a line break in your text.
Although PHP will close the file before exiting, you should close it manually using the fclose() function.
Closing a file using fclose() is considered good practice to avoid corrupting a file.
You can also crash the server when you open many files without closing them.
Conclusion
Now you’ve learned how to write data to a file in PHP.
You can use either file_put_contents() or the combination of fopen(), fwrite(), and fclose() depending on your requirements.
Thanks for reading! May this tutorial be useful for you 🙏
