file_put_contents
(PHP 5)
file_put_contents — Write a string to a file
Description
int file_put_contents
(
string $filename
,
mixed $data
[,
int $flags= 0
[,
resource $context
]] )
If filename
does not exist, the file is created.
Otherwise, the existing file is overwritten, unless the
FILE_APPEND flags is set.
Parameters
-
filename
-
Path to the file where to write the data.
-
data
-
The data to write. Can be either a string, an
array or a stream resource (explained above).
If data
is a stream resource, the
remaining buffer of that stream will be copied to the specified file.
This is similar with using stream_copy_to_stream().
You can also specify the data
parameter as a single
dimension array. This is equivalent to
file_put_contents($filename, implode('', $array)).
-
flags
-
The value of flags
can be any combination of
the following flags (with some restrictions), joined with the binary OR
(|) operator.
Available flags
| Flag |
Description |
|---|
|
FILE_USE_INCLUDE_PATH
|
Search for filename
in the include directory.
See include_path for more
information.
|
|
FILE_APPEND
|
If file filename
already exists, append
the data to the file instead of overwriting it.
|
|
LOCK_EX
|
Acquire an exclusive lock on the file while proceeding to the
writing.
|
|
FILE_TEXT
|
data
is written in text mode. If unicode
semantics are enabled, the default encoding is UTF-8.
You can specify a different encoding by creating a custom context
or by using the stream_default_encoding() to
change the default. This flag cannot be used with
FILE_BINARY. This flag is only available since
PHP 6.
|
|
FILE_BINARY
|
data
will be written in binary mode. This
is the default setting and cannot be used with
FILE_TEXT. This flag is only available since
PHP 6.
|
-
context
-
A valid context resource created with
stream_context_create().
Return Values
The function returns the number of bytes that were written to the file, or
FALSE on failure.
Examples
Example #1 Simple usage example
<?php
$file = 'people.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "John Smith\n";
// Write the contents back to the file
file_put_contents($file, $current);
?>
Example #2 Using flags
<?php
$file = 'people.txt';
// The new person to add to the file
$person = "John Smith\n";
// Write the contents to the file,
// using the FILE_APPEND flag to append the content to the end of the file
// and the LOCK_EX flag to prevent anyone else writing to the file at the same time
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>
Example #3 Using stream contexts
<?php
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
$person = "John Smith\n";
// Add content to the file using the HTTP headers set above
file_put_contents('people.txt', $person, NULL, $context);
?>
Notes
Note: This function is
binary-safe.