Home > Backend Development > PHP Tutorial > file_put_contents in PHP

file_put_contents in PHP

WBOY
Release: 2024-08-29 12:52:22
Original
889 people have browsed it

file_put_contents is a PHP function that writes a specified string of data to a file. If the concerned file does not exist, it gets created. Conversely, if the file exists, its contents will be overwritten by the specified data. The function is easy to implement and only requires the file name and data to be written as parameters. Additionally, it is possible to write data to a remote file by specifying a URL or modifying the function’s behavior using flags. file_put_contents is a valuable tool for a multitude of purposes, such as storing form data, generating log files, or debugging through the creation of written records.

file_put_contents in PHP

ADVERTISEMENT Popular Course in this category Content Marketing Mastery: Strategies for Success - Specialization | 4 Course Series

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Syntax and Parameters

The syntax and parameters of the file_put_contents function are crucial to its correct usage and behavior. The syntax defines the structure of the function and the required order of the parameters. The parameters themselves allow for the specification of the target file, the data to be written, and options to modify the behavior of the function. A clear understanding of the syntax and parameters of the file_put_contents function is important for accurate and effective usage of the function.

Syntax:

file_put_contents(filename, data, [flags, context]);
Copy after login

Parameters:

Parameter Description
$filename (Compulsory) “$filename” is a parameter in the file_put_contents function that specifies the name and location of the file to which data is being written. The $filename parameter is required and specifies the target file to which the data will be written.
$data (Compulsory) $data is a variable that holds the content that will be written to a file using the file_put_contents() function in PHP. It can be a string, array, or any other PHP data type. The data will be converted to a string before it is written to the file. The data passed in the “$data” parameter is written to the file specified in “$filename”.
$flags (optional) $flags is an optional parameter for file_put_contents() in PHP that sets specific flags to control how the file write operation is performed. It can be used to modify the behavior of file_put_contents() function in terms of writing to a file. The $flags parameter takes one or more predefined constants as values that control the write mode. Some of the commonly used constants include:

FILE_USE_INCLUDE_PATH – This flag allows you to search for the file in the include_path. If the file is not found in the current directory, the included path is searched.

FILE_APPEND – This flag opens the file in append mode, and writes data to the end of the file. If the file does not exist, it is created.

LOCK_EX – This flag causes the file to be locked for exclusive write access. This means that no other processes can write to the file until it is unlocked.

FILE_TEXT – This flag sets the file mode to text. This is used for text files, and line endings are converted to the system’s default.

FILE_BINARY – This flag sets the file mode to binary. This is used for binary files, and line endings are not converted.

The default value of the $flags parameter in the file_put_contents function is 0.

$context (optional) The context parameter in the file_put_contents function in PHP allows the user to specify a set of options that modify the behavior of the function when it writes data to a file or a remote server. The context is specified as an associative array that defines options for a stream, such as headers to be sent along with a request, timeout values, encryption method, etc. It allows the user to control the way data is sent and received through a stream in PHP.
$mode (optional) The $mode parameter is an optional parameter and is not typically used in the file_put_contents function. $mode is a parameter in the file_put_contents function in PHP that specifies the access mode when opening the file. The value of $mode determines what kind of access the function has to the file, such as read-only or write-only access. By default, file_put_contents opens the file with write-only access. This means that the function can only write data to the file and cannot read the existing data in the file.

Examples

Here an array of data is converted to a JSON string and written to a remote URL using an HTTP POST request. The stream_context_create function is used to create a stream context resource that specifies the HTTP method, header information, and timeout for the request. The file_put_contents function is then used to send the JSON data to the specified URL using the specified context. The function then returns the number of bytes written to the file, or false if there is any error. The response is checked to determine if the data was sent successfully, and a message is displayed accordingly.

Example #1

Code:

<?php
$data = array("name" => "John Doe", "email" => "[email protected]", "phone" => "555-555-1212");
$json = json_encode($data);
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => "Content-Type: application/json\r\n".
"Accept: application/json\r\n".
"User-Agent: My PHP Script",
'content' => $json,
'timeout' => 60
)
));
$response = file_put_contents("https://www.example.com/api/create_user", $json, 0, $context);
if ($response === false) {
echo "Error: Could not send data to remote server.";
} else {
echo "Data successfully sent to remote server. Response: $response";
}
?>
Copy after login

Output:

The output in the above example would be a message indicating the success or failure of the data being sent to the remote server. If the data is sent successfully, the output would be:

file_put_contents in PHP

If an error occurs, the output would be:

file_put_contents in PHP

Example #2

Code:

<?php
$file = "https://cdn.educba.com/var/www/html/students.txt";
$data = "1, Alice, 23, History, 3.7\n2, Bob, 25, Mathematics, 3.9\n3, Charlie, 22, English, 3.5\n4, Dave, 24, Computer Science, 4.0\n";
// Writing data to the file
file_put_contents($file, $data);
// Check if the file was written successfully
if (file_exists($file)) {
echo "Data was successfully written to the file.";
} else {
echo "An error occurred while writing data to the file.";
}
?>
Copy after login

Output:

The output for the code would depend on the server’s response to the request. If the request was successful, the output would be:

file_put_contents in PHP

If the request was unsuccessful, the output would be:

file_put_contents in PHP

Conclusion

file_put_contents is a useful PHP function for writing data to a file. It has several parameters that allow you to control the behavior of the function, such as the file path, data to be written, and the mode in which the file is opened. With the help of the optional stream context, file_put_contents can even write data to remote servers. This function is a simple and efficient way to write data to a file, making it a popular choice among PHP developers.

Recommended Article

In this article, you learned about file_put_contents in PHP. To know more about the topic, you can refer to these articles.

  1. PHP 7 MySQL
  2. PHP 7 mysql_connect 
  3. PHP Timestamp
  4. PHP urlencode

The above is the detailed content of file_put_contents in PHP. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
php
source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template