The file_put_contents Function
The file_put_contents function writes data to a file. The first parameter is the path to the file,
the second is the data to write. The third optional parameter defines the write mode (see the table below).
The fourth optional parameter is a stream context resource created by the stream_context_create function.
It allows configuring parameters for working with a file or network resource.
Syntax
file_put_contents(
string $filename,
mixed $data,
int $flags = 0,
?resource $context = null
): int|false
Values of the Third Parameter
| Flag | Description |
|---|---|
FILE_USE_INCLUDE_PATH |
If set, the function will search for the file
in the directories specified in the include_path parameter
of the PHP settings in the php.ini file.
|
FILE_APPEND |
Append data to the end of the file instead of overwriting |
LOCK_EX |
Obtain an exclusive lock on the file during writing |
Example
Let's write a string to a file:
<?php
$res = file_put_contents('data.txt', 'abcde');
echo $res;
?>
The result of code execution returns the number of bytes written:
5
Example
Let's append data to the end of the file:
<?php
$res = file_put_contents('data.txt', '12345', FILE_APPEND);
echo $res;
?>
Example
Writing an array to a file:
<?php
$data = ['a', 'b', 'c'];
$res = file_put_contents('array.txt', implode(',', $data));
echo $res;
?>
Example
In the third parameter, you can specify several
flags by listing them with the | symbol.
As an example, let's append data with file locking:
<?php
$res = file_put_contents(
'log.txt',
"text",
FILE_APPEND | LOCK_EX
);
echo $res;
?>
Example
Using context:
<?php
$opts = [
'http' => [
'method' => "POST",
'header' => "Content-type: text/plain\r\n"
]
];
$context = stream_context_create($opts);
$res = file_put_contents(
'http://example.com/api',
'data=test',
false,
$context
);
?>
See Also
-
the
file_get_contentsfunction,
which reads the contents of a file -
the
fopenfunction,
which opens a file -
the
fwritefunction,
which writes to a file