Summary: in this tutorial, you will learn a couple of ways to create a new file in PHP.
Creating a file using the fopen() function
The fopen()
function opens a file. It also creates a file if the file doesn’t exist. Here’s the syntax of the fopen()
function:
fopen ( string $filename , string $mode , bool $use_include_path = false , resource $context = ? ) : resource
Code language: PHP (php)
To create a new file using the fopen()
function, you specify the $filename
and one of the following modes:
Mode | File Pointer |
---|---|
‘w+’ | At the beginning of the file |
‘a’ | At the end of the file |
‘a+’ | At the end of the file |
‘x’ | At the beginning of the file |
‘x+’ | At the beginning of the file |
‘c’ | At the beginning of the file |
‘c+’ | At the beginning of the file |
Except for the 'a'
and 'a+'
, the file pointer is placed at the beginning of the file.
If you want to create a binary file, you can append the character 'b'
to the $mode
argument. For example, the 'wb+'
opens a binary file for writing.
The following example uses fopen()
to create a new binary file and write some numbers to it:
<?php
$numbers = [1, 2, 3, 4, 5];
$filename = 'numbers.dat';
$f = fopen($filename, 'wb');
if (!$f) {
die('Error creating the file ' . $filename);
}
foreach ($numbers as $number) {
fputs($f, $number);
}
fclose($f);
Code language: HTML, XML (xml)
How it works.
- First, define an array of five numbers from 1 to 5.
- Second, use the
fopen()
to create thenumbers.dat
file. - Third, use the
fputs()
function to write each number in the$numbers
array to the file. - Finally, close the file using the
fclose()
function.
Creating a file using the file_put_contents() function
The file_put_contents()
function writes data into a file. Here’s the syntax of the file_put_contents()
function:
file_put_contents ( string $filename , mixed $data , int $flags = 0 , resource $context = ? ) : int
Code language: PHP (php)
If the file specified by the $filename
doesn’t exist, the function creates the file.
The file_put_contents()
function is identical to calling the fopen()
, fputs()
, and fclose()
functions successively to write data to a file.
The following example downloads a webpage using the file_get_contents()
function and write HTML to a file:
<?php
$url = 'https://www.php.net';
$html = file_get_contents($url);
file_put_contents('home.html', $html);
Code language: HTML, XML (xml)
How it works.
- First, download a webpage
https://www.php.net
using thefile_get_contents()
function. - Second, write the HTML to the
home.html
file using thefile_put_contents()
function
Summary
- Use the
fopen()
function with one of the modew
,w+
,a
,a+
,x
,x+
,c
,c+
to create a new file. - Use the
file_put_contents()
function to create a file and write data to it. - The
file_put_contents()
function is identical to callingfopen()
,fputs()
, andfclose()
functions successively to write data to a file.